Browse Source

Refs #19705 -- Documented decorator ordering with @condition().

Kevin Christopher Henry 8 years ago
parent
commit
9eb49af821
1 changed files with 12 additions and 0 deletions
  1. 12 0
      docs/topics/conditional-view-processing.txt

+ 12 - 0
docs/topics/conditional-view-processing.txt

@@ -105,6 +105,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
 ======================================