Fixed #32124 -- Added per-view opt-out for APPEND_SLASH behavior.

This commit is contained in:
Carlton Gibson 2020-10-20 09:14:48 +02:00 committed by Carlton Gibson
parent 3418092238
commit ad11f5b8c9
9 changed files with 89 additions and 9 deletions

View file

@ -61,6 +61,22 @@ Adds a few conveniences for perfectionists:
indexer would treat them as separate URLs -- so it's best practice to
normalize URLs.
If necessary, individual views may be excluded from the ``APPEND_SLASH``
behavior using the :func:`~django.views.decorators.common.no_append_slash`
decorator::
from django.views.decorators.common import no_append_slash
@no_append_slash
def sensitive_fbv(request, *args, **kwargs):
"""View to be excluded from APPEND_SLASH."""
return HttpResponse()
.. versionchanged:: 3.2
Support for the :func:`~django.views.decorators.common.no_append_slash`
decorator was added.
* Sets the ``Content-Length`` header for non-streaming responses.
.. attribute:: CommonMiddleware.response_redirect_class

View file

@ -185,6 +185,13 @@ CSRF
* ...
Decorators
~~~~~~~~~~
* The new :func:`~django.views.decorators.common.no_append_slash` decorator
allows individual views to be excluded from :setting:`APPEND_SLASH` URL
normalization.
Email
~~~~~

View file

@ -121,3 +121,18 @@ client-side caching.
This decorator adds a ``Cache-Control: max-age=0, no-cache, no-store,
must-revalidate, private`` header to a response to indicate that a page
should never be cached.
.. module:: django.views.decorators.common
Common
======
.. versionadded:: 3.2
The decorators in :mod:`django.views.decorators.common` allow per-view
customization of :class:`~django.middleware.common.CommonMiddleware` behavior.
.. function:: no_append_slash()
This decorator allows individual views to be excluded from
:setting:`APPEND_SLASH` URL normalization.