Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #14936 -- Tweaked the new render shortcut to reflect non-legacy…

… arguments. Thanks to adamv for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15020 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 0fef92f6f0d064cdce4e8722fd9fe27ed451bb9b 1 parent 6e75ee2
@freakboy3742 freakboy3742 authored
View
5 django/shortcuts/__init__.py
@@ -25,7 +25,10 @@ def render(request, *args, **kwargs):
django.template.loader.render_to_string() with the passed arguments.
Uses a RequestContext by default.
"""
- httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
+ httpresponse_kwargs = {
+ 'content_type': kwargs.pop('content_type', None),
+ 'status': kwargs.pop('status', None),
+ }
kwargs['context_instance'] = kwargs.get('context_instance', RequestContext(request))
return HttpResponse(loader.render_to_string(*args, **kwargs),
**httpresponse_kwargs)
View
15 docs/topics/http/shortcuts.txt
@@ -15,7 +15,7 @@ introduce controlled coupling for convenience's sake.
``render``
==========
-.. function:: render(request, template[, dictionary][, context_instance][, mimetype])
+.. function:: render(request, template[, dictionary][, context_instance][, content_type][, status])
.. versionadded:: 1.3
@@ -48,22 +48,25 @@ Optional arguments
will be rendered with a ``RequestContext`` instance (filled with values from
``request`` and ```dictionary``).
-``mimetype``
+``content_type``
The MIME type to use for the resulting document. Defaults to the value of
the :setting:`DEFAULT_CONTENT_TYPE` setting.
+``status``
+ The status code for the response. Defaults to ``200``.
+
Example
-------
The following example renders the template ``myapp/index.html`` with the
MIME type ``application/xhtml+xml``::
- from django.shortcuts import render_to_response
+ from django.shortcuts import render
def my_view(request):
# View code here...
- return render_to_response('myapp/index.html', {"foo": "bar"},
- mimetype="application/xhtml+xml")
+ return render(request, 'myapp/index.html', {"foo": "bar"},
+ content_type="application/xhtml+xml")
This example is equivalent to::
@@ -75,7 +78,7 @@ This example is equivalent to::
t = loader.get_template('myapp/template.html')
c = RequestContext(request, {'foo': 'bar'})
return HttpResponse(t.render(c),
- mimetype="application/xhtml+xml")
+ content_type="application/xhtml+xml")
``render_to_response``
View
9 tests/regressiontests/views/tests/shortcuts.py
@@ -45,9 +45,14 @@ def test_render_with_base_context(self):
self.assertEquals(response.content, 'FOO.BAR..\n')
self.assertEquals(response['Content-Type'], 'text/html; charset=utf-8')
- def test_render_with_mimetype(self):
- response = self.client.get('/views/shortcuts/render/mimetype/')
+ def test_render_with_content_type(self):
+ response = self.client.get('/views/shortcuts/render/content_type/')
self.assertEquals(response.status_code, 200)
self.assertEquals(response.content, 'FOO.BAR../path/to/static/media\n')
self.assertEquals(response['Content-Type'], 'application/x-rendertest')
+ def test_render_with_status(self):
+ response = self.client.get('/views/shortcuts/render/status/')
+ self.assertEquals(response.status_code, 403)
+ self.assertEquals(response.content, 'FOO.BAR../path/to/static/media\n')
+
View
3  tests/regressiontests/views/urls.py
@@ -149,7 +149,8 @@
(r'^shortcuts/render_to_response/mimetype/$', 'render_to_response_view_with_mimetype'),
(r'^shortcuts/render/$', 'render_view'),
(r'^shortcuts/render/base_context/$', 'render_view_with_base_context'),
- (r'^shortcuts/render/mimetype/$', 'render_view_with_mimetype'),
+ (r'^shortcuts/render/content_type/$', 'render_view_with_content_type'),
+ (r'^shortcuts/render/status/$', 'render_view_with_status'),
)
View
10 tests/regressiontests/views/views.py
@@ -90,8 +90,14 @@ def render_view_with_base_context(request):
'bar': 'BAR',
}, context_instance=Context())
-def render_view_with_mimetype(request):
+def render_view_with_content_type(request):
return render(request, 'debug/render_test.html', {
'foo': 'FOO',
'bar': 'BAR',
- }, mimetype='application/x-rendertest')
+ }, content_type='application/x-rendertest')
+
+def render_view_with_status(request):
+ return render(request, 'debug/render_test.html', {
+ 'foo': 'FOO',
+ 'bar': 'BAR',
+ }, status=403)
Please sign in to comment.
Something went wrong with that request. Please try again.