diff --git a/docs/topics/conditional-view-processing.txt b/docs/topics/conditional-view-processing.txt index 7efd8ac636a..b7a53ed377c 100644 --- a/docs/topics/conditional-view-processing.txt +++ b/docs/topics/conditional-view-processing.txt @@ -97,6 +97,18 @@ for your front page view:: def front_page(request, blog_id): ... +.. admonition:: Be careful with the order of decorators + + When ``condition()`` returns a conditional response, any decorators below + it will be skipped and won't apply to the response. Therefore, any + decorators that need to apply to both the regular view response and a + conditional response must be above ``condition()``. In particular, + :func:`~django.views.decorators.vary.vary_on_cookie`, + :func:`~django.views.decorators.vary.vary_on_headers`, and + :func:`~django.views.decorators.cache.cache_control` should come first + because :rfc:`RFC 7232 <7232#section-4.1>` requires that the headers they + set be present on 304 responses. + Shortcuts for only computing one value ======================================