Django feeds as class based views, now part of Django 1.2.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


syndication-view is a refactor of Django's syndication contrib app, primarily to turn feeds into class-based views, but also fixes a number of long standing tickets.

As of revision 12338, syndication-view is a part of Django and is included in version 1.2. This repository is maintained as a backport for Django 1.1.x.


$ python install



from syndication.views import Feed
from articles.models import Article, Category

class ArticleFeed(Feed):
    title = " news"
    link = "/sitenews/"
    description = "Latest news from"

    def items(self):
        return Article.objects.all()[:15]
class CategoryArticleFeed(ArticleFeed):
    def title(self, obj):
        return ' %s' % obj
    def get_object(self, request, slug):
        return Category.objects.get(slug=slug)
    def items(self, obj):
        return Article.objects.filter(category=obj)[:15]

from articles.feeds import ArticleFeed, CategoryArticleFeed

urlpatterns = patterns('',
    # ...
    (r'^articles/feed/$', ArticleFeed()),
    (r'^articles/feed/(?P<slug>[a-z0-9\-]+)/$', CategoryArticleFeed()),
    # ...

The API for the feed object in syndication.views is almost identical to that in Django's contrib app, except get_object() takes the request and any arguments passed to it from the URL rather than the "bits".