Do not call takeGet when SurveyForm ValidationError occurs.
Problems occured when a SurveyRecord was specified in the SurveyForm. The SurveyRecord data reset the erroneous POST data. Further code reduction might be possible soonish.
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