Django proporciona varios decoradores que se pueden aplicar a vistas para apoyar diversas características de HTTP.
Ve la sección sobre cómo utilizar estos decoradores con vistas basadas en clases: Decorar la clase.
Los decoradores en django.views.decorators.http se pueden utilizar para restringir el acceso a vistas basado en el método de solicitud. Estos decoradores devolverán un django.http.HttpResponseNotAllowed si las condiciones no se cumplen.
Decorador para requerir que una vista solo acepte métodos de solicitud particulares. Uso:
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
Ten en cuenta que los métodos de solicitud deben estar en mayúsculas.
Decorador para requerir que una vista solo acepte el método GET.
Decorador para requerir que una vista solo acepte el método POST.
Decorador para requerir que una vista solo acepte los métodos GET y HEAD. Estos métodos se consideran comúnmente «seguros» porque no deberían tener la significación de tomar ninguna acción distinta a la recuperación del recurso solicitado.
Nota
Los servidores web deben eliminar automáticamente el contenido de las respuestas a solicitudes HEAD mientras dejan los encabezados sin cambios, por lo que puedes manejar las solicitudes HEAD exactamente igual que las solicitudes GET en tus vistas. Dado que algunos software, como los revisores de enlaces, dependen de las solicitudes HEAD, podrías preferir utilizar require_safe en lugar de require_GET.
Los siguientes decoradores en django.views.decorators.http se pueden utilizar para controlar el comportamiento de caché en vistas particulares.
Este es el resultado de la traducción:
Estas decoradoras se pueden utilizar para generar los encabezados ETag y Last-Modified; consulte procesamiento de vistas condicionales.
Las decoradoras en django.views.decorators.gzip controlan la compresión del contenido en una base por vista.
Esta decoradora comprime el contenido si el navegador permite la compresión gzip. Establece el encabezado Vary según corresponda, para que los caches basen su almacenamiento en el encabezado Accept-Encoding.
Las decoradoras en django.views.decorators.vary se pueden utilizar para controlar la caché basada en encabezados de solicitud específicos.
El encabezado Vary define qué encabezados de solicitud debe tener en cuenta un mecanismo de caché al construir su clave de caché.
Consulte uso de encabezados vary.
Los decoradores en django.views.decorators.cache controlan la caché del servidor y el cliente.
Este decorador modifica el encabezado Cache-Control de la respuesta agregando todos los argumentos de palabra clave a él. Consulte patch_cache_control() para obtener detalles sobre la transformación.
Este decorador agrega un encabezado Expires con la fecha y hora actual.
Este decorador agrega el encabezado Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private a una respuesta para indicar que una página nunca debe ser almacenada en caché.
Cada encabezado solo se agrega si no está ya establecido.
Los decoradores en django.views.decorators.common permiten la personalización por vista de CommonMiddleware comportamiento.
Este decorador permite excluir individualmente las vistas del normalización de URL de APPEND_SLASH.
may 31, 2026