=============== View Decorators =============== .. currentmodule:: django.views.decorators.http Django provides several decorators that can be applied to views to support various HTTP features. Allowed HTTP Methods ==================== .. function:: require_http_methods(request_method_list) This decorator is used to make a view only accept particular request methods. Usage:: from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"]) def my_view(request): # I can assume now that only GET or POST requests make it this far # ... pass Note that request methods should be in uppercase. .. function:: require_GET() Decorator to require that a view only accept the GET method. .. function:: require_POST() Decorator to require that a view only accept the POST method. Conditional view processing =========================== .. function:: condition(etag_func=None, last_modified_func=None) .. function:: etag(etag_func) .. function:: last_modified(last_modified_func) These decorators can be used to generate ``ETag`` and ``Last-Modified`` headers; see :doc:`conditional view processing `. .. currentmodule:: django.views.decorators.http GZip Compression ================ .. function:: gzip_page() This decorator compresses content if the browser allows gzip compression. It sets the ``Vary`` header accordingly, so that caches will base their storage on the ``Accept-Encoding`` header. .. currentmodule:: django.views.decorators.vary Vary Headers ============ The ``Vary`` header defines which request headers a cache mechanism should take into account when building its cache key. .. function:: vary_on_cookie(func) .. function:: vary_on_headers(*headers) See :ref:`using vary headers `.