summaryrefslogtreecommitdiff
path: root/django/views/generic/simple.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/views/generic/simple.py')
-rw-r--r--django/views/generic/simple.py33
1 files changed, 26 insertions, 7 deletions
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/<id>/`` to ``/bar/<id>/``, you could use the following urlpattern::
+
+ urlpatterns = patterns('',
+ ('^foo/(?p<id>\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