Added rss feeds for blogs. This was a lot easier than expected since django has a syndication framework already built in. This is the complete code I had to add:
from django.shortcuts import get_object_or_404
from django.core.urlresolvers import reverse
from django.contrib.syndication.views import Feed
class LatestEntriesFeed(Feed):
def get_object(self, request, *args, **kwargs):
self.object = get_object_or_404(Blog, slug=kwargs['slug'])
def title(self):
return self.object.title
def description(self):
return self.object.description
def link(self):
return reverse('blogs:blogpost-feed', kwargs={'slug': self.object.slug})
def items(self):
queryset = BlogPost.objects.filter(blog=self.object).order_by('-created')
return queryset[:5]
def item_title(self, item):
return item.title
def item_description(self, item):
return item.description
url(
regex=r'^(?P<slug>[^/]+)/feed.xml$',
view=views.LatestEntriesFeed(),
name='blogpost-feed'
),
<a href="{% url "blogs:blogpost-feed" slug=blog.slug %}"><img src='/static/images/Feed-icon.svg'></img></a>