Referencia a la API de vistas basadas en clases. Para material introductorio, consulte el tema guía del Vistas basadas en clases.
Cada solicitud atendida por una vista basada en clases tiene un estado independiente; por lo tanto, es seguro almacenar variables de estado en la instancia (es decir, self.foo = 3 es una operación segura para hilos).
Una vista basada en clase se despliega en un patrón de URL utilizando el método de clase as_view().
urlpatterns = [
path("view/", MyView.as_view(size=42)),
]
Seguridad entre hilos con argumentos de vistas
Los argumentos pasados a una vista se comparten entre cada instancia de la vista. Esto significa que no debes utilizar una lista, un diccionario o cualquier otro objeto mutable como argumento para una vista. Si lo haces y el objeto compartido se modifica, las acciones de un usuario visitando tu vista podrían tener efecto en los usuarios posteriores que visiten la misma vista.
Los argumentos pasados a as_view() se asignarán al instante que se utiliza para atender una solicitud. Utilizando el ejemplo anterior, esto significa que cada solicitud en MyView puede utilizar self.size. Los argumentos deben corresponder a atributos que ya existen en la clase (devuelven True en un hasattr check).
Las vistas basadas en clases pueden considerarse como vistas padre, que se pueden utilizar por sí solas o heredar de ellas. No proporcionan necesariamente todas las capacidades requeridas para los proyectos, en cuyo caso hay Mixins que extienden lo que las vistas base pueden hacer.
Las vistas genéricas de Django se construyen sobre esas vistas base, y fueron desarrolladas como un atajo para patrones de uso comunes, tales como mostrar los detalles de un objeto. Ellos toman ciertos idiosincrasias y patrones comunes encontrados en el desarrollo de vistas y los abstractan para que puedas escribir rápidamente vistas comunes de datos sin tener que repetirte.
La mayoría de las vistas generales requieren la clave queryset, que es una instancia de QuerySet; para obtener más información sobre los objetos QuerySet, consulte Haciendo consultas.
may 31, 2026