Commit 4a438e40 authored by Markus Bertheau's avatar Markus Bertheau Committed by Tim Graham
Browse files

Fixed #13008 -- Added more Cache-Control headers to never_cache() decorator.

parent 82162b44
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@ def add_never_cache_headers(response):
    Adds headers to a response to indicate that a page should never be cached.
    """
    patch_response_headers(response, cache_timeout=-1)
    patch_cache_control(response, no_cache=True, no_store=True, must_revalidate=True)


def patch_vary_headers(response, newheaders):
+1 −1
Original line number Diff line number Diff line
@@ -1474,7 +1474,7 @@ templates used by the :class:`ModelAdmin` views:
        url(r'^my_view/$', self.admin_site.admin_view(self.my_view))

    This wrapping will protect ``self.my_view`` from unauthorized access and
    will apply the ``django.views.decorators.cache.never_cache`` decorator to
    will apply the :func:`django.views.decorators.cache.never_cache` decorator to
    make sure it is not cached if the cache middleware is active.

    If the page is cacheable, but you still want the permission check to be
+7 −1
Original line number Diff line number Diff line
@@ -65,7 +65,13 @@ need to distinguish caches by the ``Accept-language`` header.

.. function:: add_never_cache_headers(response)

    Adds headers to a response to indicate that a page should never be cached.
    Adds a ``Cache-Control: max-age=0, no-cache, no-store, must-revalidate``
    header to a response to indicate that a page should never be cached.

    .. versionchanged:: 1.9

        Before Django 1.9, ``Cache-Control: max-age=0`` was sent. This didn't
        reliably prevent caching in all browsers.

.. function:: patch_vary_headers(response, newheaders)

+4 −0
Original line number Diff line number Diff line
@@ -118,6 +118,10 @@ Cache
* ``django.core.cache.backends.base.BaseCache`` now has a ``get_or_set()``
  method.

* :func:`django.views.decorators.cache.never_cache` now sends more persuasive
  headers (added ``no-cache, no-store, must-revalidate`` to ``Cache-Control``)
  to better prevent caching.

Email
^^^^^

+1 −1
Original line number Diff line number Diff line
@@ -1209,7 +1209,7 @@ the value of the :setting:`CACHE_MIDDLEWARE_SECONDS` setting. If you use a custo
precedence, and the header values will be merged correctly.)

If you want to use headers to disable caching altogether,
``django.views.decorators.cache.never_cache`` is a view decorator that adds
:func:`django.views.decorators.cache.never_cache` is a view decorator that adds
headers to ensure the response won't be cached by browsers or other caches.
Example::

Loading