14 | | my feeds.py |
15 | | |
16 | | from django.contrib.syndication.views import Feed |
17 | | from blog.models import Post |
18 | | from django.utils.feedgenerator import Atom1Feed |
19 | | from django.utils.html import escape |
20 | | |
21 | | class RssSiteNewsFeed(Feed): |
22 | | title = "blog rss " |
23 | | link = "/blog/rss/" |
24 | | description = "blog rss and atom feeds ." |
25 | | |
26 | | def items(self): |
27 | | return Post.objects.order_by('date')[:10] |
28 | | |
29 | | def item_title(self, item): |
30 | | return item.title |
31 | | |
32 | | def item_description(self, item): |
33 | | return item.description |
34 | | |
35 | | def item_link(self, item): |
36 | | return item.get_absolute_url() |
37 | | |
38 | | class AtomSiteNewsFeed(RssSiteNewsFeed): |
39 | | feed_type = Atom1Feed |
40 | | subtitle = RssSiteNewsFeed.description |
41 | | |
42 | | my models .py |
43 | | |
44 | | class Post(models.Model): |
45 | | title = models.CharField (max_length = 160, null=False) |
46 | | body = models.TextField( null=False) |
47 | | date = models.DateTimeField() |
48 | | author = models.CharField (max_length = 160) |
49 | | description = models.TextField(max_length = 160) |
50 | | keywords = models.TextField() |
51 | | category = models.ForeignKey(Category,on_delete=models.DO_NOTHING) |
52 | | slug = models.SlugField(max_length = 160,unique=True) |
53 | | img_url = models.URLField() |
54 | | short_blog_snippet= models.CharField(max_length = 15) |
55 | | absolute_url = models.CharField(max_length=400, blank=True, editable=False) |
56 | | |
57 | | |
58 | | def __str__(self): |
59 | | |
60 | | |
61 | | |
62 | | return self.title |
63 | | |
64 | | def get_absolute_url(self ): |
65 | | |
66 | | return "/blog/%s" % self.slug |
67 | | def __unicode__(self): |
68 | | return self.title |