mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #24168 -- Allowed selecting a template engine in a few APIs.
Specifically in rendering shortcuts, template responses, and class-based
views that return template responses.
Also added a test for render_to_response(status=...) which was missing
from fdbfc980.
Thanks Tim and Carl for the review.
This commit is contained in:
@@ -35,6 +35,7 @@ TemplateView
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type`
|
||||
* :attr:`~django.views.generic.base.View.http_method_names`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
|
||||
**Methods**
|
||||
@@ -89,6 +90,7 @@ DetailView
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field`
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix`
|
||||
@@ -124,6 +126,7 @@ ListView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
|
||||
@@ -155,6 +158,7 @@ FormView
|
||||
* :attr:`~django.views.generic.edit.FormMixin.prefix` [:meth:`~django.views.generic.edit.FormMixin.get_prefix`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
|
||||
**Methods**
|
||||
@@ -191,6 +195,7 @@ CreateView
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg`
|
||||
* :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field`
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix`
|
||||
@@ -232,6 +237,7 @@ UpdateView
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg`
|
||||
* :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field`
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix`
|
||||
@@ -269,6 +275,7 @@ DeleteView
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg`
|
||||
* :attr:`~django.views.generic.edit.DeletionMixin.success_url` [:meth:`~django.views.generic.edit.DeletionMixin.get_success_url`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field`
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix`
|
||||
@@ -308,6 +315,7 @@ ArchiveIndexView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
|
||||
@@ -346,6 +354,7 @@ YearArchiveView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
* :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`]
|
||||
@@ -387,6 +396,7 @@ MonthArchiveView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
* :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`]
|
||||
@@ -428,6 +438,7 @@ WeekArchiveView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
* :attr:`~django.views.generic.dates.WeekMixin.week` [:meth:`~django.views.generic.dates.WeekMixin.get_week`]
|
||||
@@ -473,6 +484,7 @@ DayArchiveView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
* :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`]
|
||||
@@ -520,6 +532,7 @@ TodayArchiveView
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class`
|
||||
* :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix`
|
||||
* :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`]
|
||||
@@ -565,6 +578,7 @@ DateDetailView
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_engine`
|
||||
* :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`]
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_field`
|
||||
* :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix`
|
||||
|
||||
@@ -49,6 +49,15 @@ TemplateResponseMixin
|
||||
a ``template_name`` will raise a
|
||||
:class:`django.core.exceptions.ImproperlyConfigured` exception.
|
||||
|
||||
.. attribute:: template_engine
|
||||
|
||||
.. versionadded:: 1.8
|
||||
|
||||
The :setting:`NAME <TEMPLATES-NAME>` of a template engine to use for
|
||||
loading the template. ``template_engine`` is passed as the ``using``
|
||||
keyword argument to ``response_class``. Default is ``None``, which
|
||||
tells Django to search for the template in all configured engines.
|
||||
|
||||
.. attribute:: response_class
|
||||
|
||||
The response class to be returned by ``render_to_response`` method.
|
||||
|
||||
@@ -65,7 +65,7 @@ Attributes
|
||||
Methods
|
||||
-------
|
||||
|
||||
.. method:: SimpleTemplateResponse.__init__(template, context=None, content_type=None, status=None, charset=None)
|
||||
.. method:: SimpleTemplateResponse.__init__(template, context=None, content_type=None, status=None, charset=None, using=None)
|
||||
|
||||
Instantiates a :class:`~django.template.response.SimpleTemplateResponse`
|
||||
object with the given template, context, content type, HTTP status, and
|
||||
@@ -102,9 +102,13 @@ Methods
|
||||
be extracted from ``content_type``, and if that is unsuccessful, the
|
||||
:setting:`DEFAULT_CHARSET` setting will be used.
|
||||
|
||||
.. versionadded:: 1.8
|
||||
``using``
|
||||
The :setting:`NAME <TEMPLATES-NAME>` of a template engine to use for
|
||||
loading the template.
|
||||
|
||||
The ``charset`` parameter was added.
|
||||
.. versionchanged:: 1.8
|
||||
|
||||
The ``charset`` and ``using`` parameters were added.
|
||||
|
||||
.. method:: SimpleTemplateResponse.resolve_context(context)
|
||||
|
||||
@@ -185,7 +189,7 @@ TemplateResponse objects
|
||||
Methods
|
||||
-------
|
||||
|
||||
.. method:: TemplateResponse.__init__(request, template, context=None, content_type=None, status=None, current_app=None, charset=None)
|
||||
.. method:: TemplateResponse.__init__(request, template, context=None, content_type=None, status=None, current_app=None, charset=None, using=None)
|
||||
|
||||
Instantiates a :class:`~django.template.response.TemplateResponse` object
|
||||
with the given request, template, context, content type, HTTP status, and
|
||||
@@ -235,9 +239,13 @@ Methods
|
||||
be extracted from ``content_type``, and if that is unsuccessful, the
|
||||
:setting:`DEFAULT_CHARSET` setting will be used.
|
||||
|
||||
.. versionadded:: 1.8
|
||||
``using``
|
||||
The :setting:`NAME <TEMPLATES-NAME>` of a template engine to use for
|
||||
loading the template.
|
||||
|
||||
The ``charset`` parameter was added.
|
||||
.. versionchanged:: 1.8
|
||||
|
||||
The ``charset`` and ``using`` parameters were added.
|
||||
|
||||
The rendering process
|
||||
=====================
|
||||
|
||||
@@ -15,7 +15,7 @@ introduce controlled coupling for convenience's sake.
|
||||
``render``
|
||||
==========
|
||||
|
||||
.. function:: render(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs])
|
||||
.. function:: render(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs][, using])
|
||||
|
||||
Combines a given template with a given context dictionary and returns an
|
||||
:class:`~django.http.HttpResponse` object with that rendered text.
|
||||
@@ -77,6 +77,14 @@ Optional arguments
|
||||
The ``current_app`` argument is deprecated. Instead you should set
|
||||
``request.current_app``.
|
||||
|
||||
``using``
|
||||
The :setting:`NAME <TEMPLATES-NAME>` of a template engine to use for
|
||||
loading the template.
|
||||
|
||||
.. versionchanged:: 1.8
|
||||
|
||||
The ``using`` parameter was added.
|
||||
|
||||
.. deprecated:: 1.8
|
||||
|
||||
The ``dirs`` parameter was deprecated.
|
||||
@@ -109,7 +117,7 @@ This example is equivalent to::
|
||||
``render_to_response``
|
||||
======================
|
||||
|
||||
.. function:: render_to_response(template_name[, context][, context_instance][, content_type][, status][, dirs])
|
||||
.. function:: render_to_response(template_name[, context][, context_instance][, content_type][, status][, dirs][, using])
|
||||
|
||||
Renders a given template with a given context dictionary and returns an
|
||||
:class:`~django.http.HttpResponse` object with that rendered text.
|
||||
@@ -159,9 +167,13 @@ Optional arguments
|
||||
``status``
|
||||
The status code for the response. Defaults to ``200``.
|
||||
|
||||
``using``
|
||||
The :setting:`NAME <TEMPLATES-NAME>` of a template engine to use for
|
||||
loading the template.
|
||||
|
||||
.. versionchanged:: 1.8
|
||||
|
||||
The ``status`` parameter was added.
|
||||
The ``status`` and ``using`` parameters were added.
|
||||
|
||||
.. deprecated:: 1.8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user