From 277fe2e8f2ee35cd389b079ce7691491bb5738ec Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 3 Sep 2016 09:06:33 -0400 Subject: Fixed #25788 -- Enabled the cached template loader if debug is False. --- docs/ref/templates/api.txt | 38 +++++++++++++++++++++++++++----------- docs/releases/1.11.txt | 6 ++++++ 2 files changed, 33 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt index a6b029efe2..55a1a314b1 100644 --- a/docs/ref/templates/api.txt +++ b/docs/ref/templates/api.txt @@ -103,8 +103,16 @@ what's passed by :class:`~django.template.backends.django.DjangoTemplates`. * ``'django.template.loaders.app_directories.Loader'`` if and only if ``app_dirs`` is ``True``. + If ``debug`` is ``False``, these loaders are wrapped in + :class:`django.template.loaders.cached.Loader`. + See :ref:`template-loaders` for details. + .. versionchanged:: 1.11 + + Enabling of the cached template loader when ``debug`` is ``False`` + was added. + * ``string_if_invalid`` is the output, as a string, that the template system should use for invalid (e.g. misspelled) variables. @@ -899,18 +907,22 @@ loaders that come with Django: .. class:: cached.Loader - By default, the templating system will read and compile your templates every - time they need to be rendered. While the Django templating system is quite - fast, the overhead from reading and compiling templates can add up. + By default (when :setting:`DEBUG` is ``True``), the template system reads + and compiles your templates every time they're rendered. While the Django + template system is quite fast, the overhead from reading and compiling + templates can add up. - The cached template loader is a class-based loader that you configure with - a list of other loaders that it should wrap. The wrapped loaders are used to - locate unknown templates when they are first encountered. The cached loader - then stores the compiled ``Template`` in memory. The cached ``Template`` - instance is returned for subsequent requests to load the same template. + You configure the cached template loader with a list of other loaders that + it should wrap. The wrapped loaders are used to locate unknown templates + when they're first encountered. The cached loader then stores the compiled + ``Template`` in memory. The cached ``Template`` instance is returned for + subsequent requests to load the same template. - For example, to enable template caching with the ``filesystem`` and - ``app_directories`` template loaders you might use the following settings:: + This loader is automatically enabled if :setting:`DEBUG` is ``False`` and + :setting:`OPTIONS['loaders'] ` isn't specified. + + You can also enable template caching with some custom template loaders + using settings like this:: TEMPLATES = [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', @@ -920,6 +932,7 @@ loaders that come with Django: ('django.template.loaders.cached.Loader', [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', + 'path.to.custom.Loader', ]), ], }, @@ -934,7 +947,10 @@ loaders that come with Django: information, see :ref:`template tag thread safety considerations `. - This loader is disabled by default. + .. versionchanged:: 1.11 + + The automatic enabling of the cached template loader when ``debug`` is + ``False`` was added. ``django.template.loaders.locmem.Loader`` diff --git a/docs/releases/1.11.txt b/docs/releases/1.11.txt index e45a64ffd5..bb8c851f72 100644 --- a/docs/releases/1.11.txt +++ b/docs/releases/1.11.txt @@ -471,6 +471,12 @@ Miscellaneous :class:`~django.core.serializers.json.DjangoJSONEncoder` (renamed in Django 1.0) is removed. +* The :class:`cached template loader ` + is now enabled if :setting:`DEBUG` is ``False`` and + :setting:`OPTIONS['loaders'] ` isn't specified. This could + be backwards-incompatible if you have some :ref:`template tags that aren't + thread safe `. + .. _deprecated-features-1.11: Features deprecated in 1.11 -- cgit v1.3