app/django/contrib/syndication/views.py
author Sverre Rabbelier <srabbelier@gmail.com>
Mon, 10 Nov 2008 00:42:41 +0000
changeset 461 fca6a8b5ae34
parent 54 03e267d67478
permissions -rw-r--r--
Partially use the new user code The 'edit self' is not working fully yet, the 'lookup' code is not working at all, as such, only 'create', 'edit', 'list', and 'delete' make use of the generic code.

from django.contrib.syndication import feeds
from django.http import HttpResponse, Http404

def feed(request, url, feed_dict=None):
    if not feed_dict:
        raise Http404, "No feeds are registered."

    try:
        slug, param = url.split('/', 1)
    except ValueError:
        slug, param = url, ''

    try:
        f = feed_dict[slug]
    except KeyError:
        raise Http404, "Slug %r isn't registered." % slug

    try:
        feedgen = f(slug, request).get_feed(param)
    except feeds.FeedDoesNotExist:
        raise Http404, "Invalid feed parameters. Slug %r is valid, but other parameters, or lack thereof, are not." % slug

    response = HttpResponse(mimetype=feedgen.mime_type)
    feedgen.write(response, 'utf-8')
    return response