Fixed #30594 -- Added 'private' Cache-Control directive to never_cache() decorator.

This commit is contained in:
nsasaki128 2019-06-25 15:15:00 +09:00 committed by Mariusz Felisiak
parent 8454f6dea4
commit a289e79679
5 changed files with 18 additions and 7 deletions

View File

@ -250,7 +250,7 @@ def add_never_cache_headers(response):
Add headers to a response to indicate that a page should never be cached. Add headers to a response to indicate that a page should never be cached.
""" """
patch_response_headers(response, cache_timeout=-1) patch_response_headers(response, cache_timeout=-1)
patch_cache_control(response, no_cache=True, no_store=True, must_revalidate=True) patch_cache_control(response, no_cache=True, no_store=True, must_revalidate=True, private=True)
def patch_vary_headers(response, newheaders): def patch_vary_headers(response, newheaders):

View File

@ -62,8 +62,13 @@ need to distinguish caches by the ``Accept-language`` header.
.. function:: add_never_cache_headers(response) .. function:: add_never_cache_headers(response)
Adds a ``Cache-Control: max-age=0, no-cache, no-store, must-revalidate`` 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. private`` header to a response to indicate that a page should never be
cached.
.. versionchanged:: 3.0
``private`` directive was added.
.. function:: patch_vary_headers(response, newheaders) .. function:: patch_vary_headers(response, newheaders)

View File

@ -167,7 +167,9 @@ Minor features
Cache Cache
~~~~~ ~~~~~
* ... * :func:`~django.utils.cache.add_never_cache_headers` and
:func:`~django.views.decorators.cache.never_cache` now adds ``private``
directive to a ``Cache-Control`` header.
CSRF CSRF
~~~~ ~~~~

View File

@ -119,5 +119,9 @@ client-side caching.
.. function:: never_cache(view_func) .. function:: never_cache(view_func)
This decorator adds a ``Cache-Control: max-age=0, no-cache, no-store, This decorator adds a ``Cache-Control: max-age=0, no-cache, no-store,
must-revalidate`` header to a response to indicate that a page should never must-revalidate, private`` header to a response to indicate that a page
be cached. should never be cached.
.. versionchanged:: 3.0
``private`` directive was added.

View File

@ -478,5 +478,5 @@ class NeverCacheDecoratorTest(TestCase):
r = a_view(HttpRequest()) r = a_view(HttpRequest())
self.assertEqual( self.assertEqual(
set(r['Cache-Control'].split(', ')), set(r['Cache-Control'].split(', ')),
{'max-age=0', 'no-cache', 'no-store', 'must-revalidate'}, {'max-age=0', 'no-cache', 'no-store', 'must-revalidate', 'private'},
) )