From 400cf5658da46fc748e64a7570a6df0dd21cbff2 Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Tue, 15 Nov 2005 17:19:33 +0000 Subject: Added django.views.generic.simple.redirect_to view for issuing simple redirects. Also updated direct_to_template to use render_to_response to be consistant with coding style, and documented the simple generic views. git-svn-id: http://code.djangoproject.com/svn/django/trunk@1249 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/generic/simple.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'django') diff --git a/django/views/generic/simple.py b/django/views/generic/simple.py index 4dffd69a47..8a054e1ce7 100644 --- a/django/views/generic/simple.py +++ b/django/views/generic/simple.py @@ -1,9 +1,28 @@ -from django.core import template_loader -from django.core.extensions import DjangoContext -from django.utils.httpwrappers import HttpResponse +from django.core.extensions import DjangoContext, render_to_response +from django.utils.httpwrappers import HttpResponse, HttpResponseRedirect, HttpResponseGone def direct_to_template(request, template, **kwargs): - """Render a given template with any extra parameters in the context.""" - t = template_loader.get_template(template) - c = DjangoContext(request, {'params' : kwargs}) - return HttpResponse(t.render(c)) \ No newline at end of file + """ + Render a given template with any extra URL parameters in the context as + ``{{ params }}``. + """ + return render_to_response(template, {'params' : kwargs}, context_instance=DjangoContext(request)) + +def redirect_to(request, url, **kwargs): + """ + Redirect to a given URL. + + The given url may contain dict-style string formatting which will be + interpolated against the params in the URL. For example, to redirect from + ``/foo//`` to ``/bar//``, you could use the following urlpattern:: + + urlpatterns = patterns('', + ('^foo/(?p\d+)/$', 'django.views.generic.simple.redirect_to', {'url' : '/bar/%(id)s/'}), + ) + + If the given url is ``None``, a HttpResponseGone (410) will be issued. + """ + if url is not None: + return HttpResponseRedirect(url % kwargs) + else: + return HttpResponseGone() \ No newline at end of file -- cgit v1.3