      # Bad code. Don't do this!
      @etag(etag_func)
      @last_modified(last_modified_func)
      def my_view(request):
          # ...
  
      # End of bad code.
  
  The first decorator doesn't know anything about the second and might
  answer that the response is not modified even if the second decorators would
 
</s> remove         def fancy_utility_function(s, ...):
 </s> add         def fancy_utility_function(s, *args, **kwargs): </s> remove           # ...
 </s> add           ... </s> remove             ...
 </s> add             # ... </s> remove explaining how this would work for a dynamically generated web page::
 </s> add explaining how this would work for a dynamically generated web page:

.. code-block:: text
        ...
      # Bad code. Don't do this!
      @etag(etag_func)
      @last_modified(last_modified_func)
      def my_view(request):
        ...
  
      # End of bad code.
  
  The first decorator doesn't know anything about the second and might
  answer that the response is not modified even if the second decorators would
keep keep keep keep replace keep keep keep keep keep
 Refs #34140 -- Corrected rst code-block and various formatting issues in docs. 
docs/topics/conditional-view-processing.txt