app/django/contrib/syndication/views.py
author Lennard de Rijk <ljvderijk@gmail.com>
Mon, 10 Aug 2009 18:49:34 -0700
changeset 2751 e8a98669ec8c
parent 54 03e267d67478
permissions -rw-r--r--
_getResultsViewRecordFields does not need fields argument anymore. It now returns its own filter dictionary when called. Should be overwritten by subclasses who wish to use other filters.

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