Refs #25978 -- Removed shortcuts.render_to_response() per deprecation timeline.

This commit is contained in:
Tim Graham 2018-12-27 19:23:09 -05:00
parent 944469939b
commit 573ec714e5
6 changed files with 3 additions and 113 deletions

View File

@ -3,31 +3,14 @@ This module collects helper functions and classes that "span" multiple levels
of MVC. In other words, these functions/classes introduce controlled coupling of MVC. In other words, these functions/classes introduce controlled coupling
for convenience's sake. for convenience's sake.
""" """
import warnings
from django.http import ( from django.http import (
Http404, HttpResponse, HttpResponsePermanentRedirect, HttpResponseRedirect, Http404, HttpResponse, HttpResponsePermanentRedirect, HttpResponseRedirect,
) )
from django.template import loader from django.template import loader
from django.urls import NoReverseMatch, reverse from django.urls import NoReverseMatch, reverse
from django.utils.deprecation import RemovedInDjango30Warning
from django.utils.functional import Promise from django.utils.functional import Promise
def render_to_response(template_name, context=None, content_type=None, status=None, using=None):
"""
Return a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
warnings.warn(
'render_to_response() is deprecated in favor of render(). It has the '
'same signature except that it also requires a request.',
RemovedInDjango30Warning, stacklevel=2,
)
content = loader.render_to_string(template_name, context, using=using)
return HttpResponse(content, content_type, status)
def render(request, template_name, context=None, content_type=None, status=None, using=None): def render(request, template_name, context=None, content_type=None, status=None, using=None):
""" """
Return a HttpResponse whose content is filled with the result of calling Return a HttpResponse whose content is filled with the result of calling

View File

@ -238,6 +238,8 @@ to remove usage of these features.
* The ``django.db.backends.postgresql_psycopg2`` module is removed. * The ``django.db.backends.postgresql_psycopg2`` module is removed.
* ``django.shortcuts.render_to_response()`` is removed.
See :ref:`deprecated-features-2.1` for details on these changes, including how See :ref:`deprecated-features-2.1` for details on these changes, including how
to remove usage of these features. to remove usage of these features.

View File

@ -81,17 +81,6 @@ This example is equivalent to::
c = {'foo': 'bar'} c = {'foo': 'bar'}
return HttpResponse(t.render(c, request), content_type='application/xhtml+xml') return HttpResponse(t.render(c, request), content_type='application/xhtml+xml')
``render_to_response()``
========================
.. function:: render_to_response(template_name, context=None, content_type=None, status=None, using=None)
.. deprecated:: 2.0
This function preceded the introduction of :func:`render` and works
similarly except that it doesn't make the ``request`` available in the
response.
``redirect()`` ``redirect()``
============== ==============

View File

@ -1,39 +0,0 @@
from django.test import SimpleTestCase, ignore_warnings, override_settings
from django.test.utils import require_jinja2
from django.utils.deprecation import RemovedInDjango30Warning
@ignore_warnings(category=RemovedInDjango30Warning)
@override_settings(ROOT_URLCONF='shortcuts.urls')
class RenderToResponseTests(SimpleTestCase):
def test_render_to_response(self):
response = self.client.get('/render_to_response/')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, b'FOO.BAR..\n')
self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
def test_render_to_response_with_multiple_templates(self):
response = self.client.get('/render_to_response/multiple_templates/')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, b'FOO.BAR..\n')
def test_render_to_response_with_content_type(self):
response = self.client.get('/render_to_response/content_type/')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, b'FOO.BAR..\n')
self.assertEqual(response['Content-Type'], 'application/x-rendertest')
def test_render_to_response_with_status(self):
response = self.client.get('/render_to_response/status/')
self.assertEqual(response.status_code, 403)
self.assertEqual(response.content, b'FOO.BAR..\n')
@require_jinja2
def test_render_to_response_with_using(self):
response = self.client.get('/render_to_response/using/')
self.assertEqual(response.content, b'DTL\n')
response = self.client.get('/render_to_response/using/?using=django')
self.assertEqual(response.content, b'DTL\n')
response = self.client.get('/render_to_response/using/?using=jinja2')
self.assertEqual(response.content, b'Jinja2\n')

View File

@ -3,11 +3,6 @@ from django.urls import path
from . import views from . import views
urlpatterns = [ urlpatterns = [
path('render_to_response/', views.render_to_response_view),
path('render_to_response/multiple_templates/', views.render_to_response_view_with_multiple_templates),
path('render_to_response/content_type/', views.render_to_response_view_with_content_type),
path('render_to_response/status/', views.render_to_response_view_with_status),
path('render_to_response/using/', views.render_to_response_view_with_using),
path('render/', views.render_view), path('render/', views.render_view),
path('render/multiple_templates/', views.render_view_with_multiple_templates), path('render/multiple_templates/', views.render_view_with_multiple_templates),
path('render/content_type/', views.render_view_with_content_type), path('render/content_type/', views.render_view_with_content_type),

View File

@ -1,44 +1,4 @@
from django.shortcuts import render, render_to_response from django.shortcuts import render
def render_to_response_view(request):
return render_to_response('shortcuts/render_test.html', {
'foo': 'FOO',
'bar': 'BAR',
})
def render_to_response_view_with_multiple_templates(request):
return render_to_response([
'shortcuts/no_such_template.html',
'shortcuts/render_test.html',
], {
'foo': 'FOO',
'bar': 'BAR',
})
def render_to_response_view_with_content_type(request):
return render_to_response('shortcuts/render_test.html', {
'foo': 'FOO',
'bar': 'BAR',
}, content_type='application/x-rendertest')
def render_to_response_view_with_status(request):
return render_to_response('shortcuts/render_test.html', {
'foo': 'FOO',
'bar': 'BAR',
}, status=403)
def render_to_response_view_with_using(request):
using = request.GET.get('using')
return render_to_response('shortcuts/using.html', using=using)
def context_processor(request):
return {'bar': 'context processor output'}
def render_view(request): def render_view(request):