Class Based Views
En la actualidad las vistas no tienen que estar limitadas a ser funciones, esto es gracias a que en Django lo importante es poder obtener un elemento que pueda ser llamado, gracias a dicho enfoque podemos tener cierta libertad en como generamos los elementos que puedan ser llamados. Al construir vistas basadas en clases obtenemos los siguientes beneficios:
Es cierto que existen diferentes formas de crear clases, sin embargo, para mantener la uniformidad con el código Django debemos tratar de hacer nuestras clases similares a las clases genéricas del framework.
De todas formas al hacer esto una recomendación a tener en cuenta es que no se nos impide de crear las clases de la forma en que nuestra aplicación lo necesite inclusive si tenemos que diferir de las clases genéricas ya mencionadas.
Vista genérica Django.views.generic.base.View
Como todo inicio es difícil sin guía, Django nos facilita la entrada a este mundo ofreciéndonos su vista genérica, para utilizarla solo debemos hacer una subclase de ella y de esta forma tendremos una base.
Obviamente esta no hará lo que necesitamos desde un inicio, sin embargo podremos utilizar las siguientes funcionalidades:
Como crear una Vista en una Clase
Ya hemos visto las diferentes características de lo que supone generar vistas con clases, inclusive hemos visto algunas ventajas, ahora pasaremos a ver cómo podemos plasmar en código lo que sabemos para poder obtener el resultado.
Veamos en la siguiente imagen una vista generada haciendo una subclase de la vista genérica de Django View:
Hagamos un análisis del código, si nos fijamos estamos creando nuestra clase y le especificamos que debe ser una subclase de View por lo que obtendremos todas sus funcionalidades, luego especificamos que plantilla debe asociarse a la clase y por último sobrescribimos los métodos get y post, de esta forma podemos incorporar nuestra lógica.
Para finalizar este tutorial veamos un ejemplo de lo antes mencionado en la siguiente imagen: