Django, vistas basadas en clases (I): Introducción

Hace un año publiqué un un tutorial de Django para crear un blog. Django ha avanzado mucho recientemente.

Uno de los cambios más importantes que se han producido es en las vistas. Las vistas (views) ahora son clases en lugar de ser funciones. Si queremos podemos seguir usando funciones pero las clases pueden ser muy rápidas y fácilas de usar.

La forma de usarlas es, básicamente, crear nuestra propia vista heredando de una vista genérica y modificando su comportamiento. Tenemos vistas para traer un objeto de la base de datos (DetailVew), para listar objetos (ListView), para crear, actualizar o borrar (CreateView, UpdateView y DeleteView) o podemos utilizar una vista completamente vacía de funcionalidad (View). Usando estas vistas, podremos indicar el modelo de datos que queremos utilizar, filtros para las consultas a base de datos, formularios con los que crearemos los objectos, templates con las que mostraremos la vista y cualquier otro aspecto que necesites modificar.

Si nunca antes has trabajado con vistas basadas en clases te va a resultar confuso al principio. Una vez que entiendes cómo funcionan, te resultarán una herramienta poderosa. Utilizando las vistas genéricas tendrás casi todos los comportamientos por defecto que necesitas de manera habitual y, además, serás capaz de modificarlas y adaptarlas a tus necesidades específicas. Si necesitas algo más complejo, puedes crearte tu propia vista basada en clases o simplemente crear una vista a la vieja usanza basada en un método.

En las próximas entradas del blog intentaré explicar como funcionan diferentes vistas basadas en clases genéricas y crear algunos ejemplos que puedan resultar útiles. He pensado en hacerlo usando un blog (es un ejemplo que todo el mundo entiende), pero estoy abierto a sugerencias.

Si queréis echar un vistazo a la documentación oficial, podéis encontrar toda la información necesaria en este enlace: Vistas basadas en clases.