Cargando



Django - Class Based Views, Aplicación

En este tutorial vamos a hacer una pequeña aplicación donde podremos incorporar los conceptos de las Class Based Views de forma que podamos ver como podremos levantar algo en muy poco tiempo y motivarnos a continuar el aprendizaje.


abr 05 2014 02:23
abr 05 2014 11:57

Creación de Vista, Plantilla y URLs



En la primera parte del tutorial pudimos ver que necesitábamos y que debíamos hacer para empezar con este proyecto, llegamos hasta la construcción de nuestro modelo él cuál le dará la estructura necesaria a nuestra aplicación en Django.

En esta segunda parte vamos a ejecutar las acciones restantes que nos llevaran a tener el CRUD utilizando las Class Based Views, aprovechando de esta forma las clases y las vistas genéricas del framework.

Crear la Vista de Listado de Elementos

Vamos a iniciar creando la vista de listado de nuestros elementos en la aplicación, para ello en nuestro archivo views.py de la aplicación debemos crear una clase que debe ser una sub clase de ListView con ello garantizaremos que podemos llenar nuestra plantilla con los datos necesarios.

Primero debemos hacer un import del módulo necesario, por ello al inicio de nuestro archivo views.py vamos a colocar lo siguiente:

from django.views.generic.list import ListView

Luego creamos la siguiente clase:

class BloggyListView(ListView):
		 model = Bloggy

Importante
Con esto le estamos diciendo que nuestra clase PostListView será una subclase de ListView y dentro de la clase especificamos el modelo que construimos en la parte anterior del tutorial, con esto ya Django sabe que campos debe buscar.


Por último debemos construir la plantilla y crear la URL, la plantilla es de libre composición veamos en la siguiente imagen un ejemplo de cómo podría lucir:






Sabemos que recibimos un object_list, lo que hacemos es iterar sobre este y vamos imprimiendo los valores que traemos de nuestro modelo, el archivo debe llamarse con el nombre del modelo y agregar el sufijo _list.html.

Ahora en el archivo urls.py debemos agregar la entrada correspondiente para que podamos acceder a esto que acabamos de hacer. Primero importamos nuestra clase de views.py:

from bloggy.views import BloggyListView

Y por último creamos la URL correspondiente:

url(r'^bloggy/listado/$', BloggyListView.as_view(), name='[u]bloggy_listado[/u]'),

Crear la Vista de Inserción

Una vez que ya podemos listar los elementos, debemos crear la vista de inserción para que podamos ir viendo los resultados de nuestra aplicación, para ello vamos a seguir unos pasos similares, vamos a nuestro archivo views.py y hacemos un import:

from django.views.generic.edit import CreateView

Si nos fijamos estamos importando de las vistas genéricas la vista de creación, es decir CreateView; el segundo paso es crear ahora nuestra clase que será una subclase de CreateView.

class BloggyCreateView(CreateView):

		 model = Bloggy
		 success_url = reverse_lazy('bloggy_listado')

Con esto ya tenemos nuestra vista creada, esto es todo lo que necesitamos para que podamos gestionar el ingreso de datos, ahora vamos a construir el formulario y por último la URL.

En la siguiente imagen vemos como podría quedar nuestro formulario:






Creando las URLs

Esto debemos guardarlo con el nombre de nuestro modelo, seguido del sufijo _form.html de esta manera el motor del framework podrá ubicarlo. Ahora modificamos nuestra URL, incorporando la nueva clase al import:

from bloggy.views import BloggyCreateView, BloggyListView

Y agregamos la URL:

url(r'^bloggy/nuevo/$', BloggyCreateView.as_view(), name='bloggy_nuevo'),

Ya hecho esto podremos insertar datos, incluidas las validaciones. Por último y para finalizar dejamos a continuación la vista de eliminación y la vista de detalle para su implementación en la aplicación:

class BloggyView(DetailView):
		 model = Post

class BloggyDeleteView(DeleteView):
		 model = Bloggy
		 success_url = reverse_lazy('bloggy_listado')

Para cerrar el tutorial vamos a dejar que cada quien complete lo restante como ejercicio para culminar el CRUD, como vemos las Class Based Views nos ahorran mucho código gracias a las vistas genéricas, esto nos ayuda a desarrollar más rápido y con menos errores.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X