Crearemos las Class View, asumiendo que ya tienen creado el model en este caso llamado BlogAztrock
La CreateView y UpdateView se encargan de Crear y Actualizar contenido en el model y crear el formulario para el ingreso de la información
# Importamos las clases para creacion, actualizacion y borrado.
# Importamos las clases para creacion, actualizacion y borrado. from django.views.generic.edit import CreateView, UpdateView, DeleteView # Importamos la clase para listar from django.views.generic import ListView # Importamos una funcion para reversar las url por el nombre from django.core.urlresolvers import reverse_lazy # Importamos un modelo. from myapp.models import BlogAztrock class AztrockCreate(CreateView): model = BlogAztrock fields = ['name'] template_name = 'form.html' success_url = reverse_lazy('aztrock-listar') class AztrockUpdate(UpdateView): model = BlogAztrock fields = ['name'] template_name = 'form.html' success_url = reverse_lazy('aztrock-listar') class AztrockDelete(DeleteView): model = BlogAztrock template_name = 'eliminar_blog.html' success_url = reverse_lazy('aztrock-listar') class AztrockListar(ListView): model = BlogAztrock template_name = 'blog-aztrock.html'Creamos las URL
from django.conf.urls import patterns, url from apps.views import AztrockCreate, AztrockUpdate, AztrockDelete, AztrockListar urlpatterns = patterns('', url(r'aztrock/$', AztrockListar.as_view(), name='aztrock-listar'), url(r'aztrock/agregar/$', AztrockCreate.as_view(), name='aztrock_agregar'), url(r'aztrock/(?Ptemplate form.hml CreateView y UpdateView\d+)/$', AztrockUpdate.as_view(), name='aztrock_actualizar'), url(r'aztrock/(?P \d+)/borrar/$', AztrockDelete.as_view(), name='aztrock_eliminar'), )
{# ==== TEMPLATE DE LA CLASE CREATEVIEW Y UPDATEVIEW ==== #} {% extends "base.html" %} {% block content %}blog_aztrock.htmllistar
{{ form }} {% endblock %}
{# ==== TEMPLATE DE LA CLASE LISTVIEW ==== #} {% extends 'base.html'>Aztrock Blog
-
{% for a in object_list %}
- {{ a.nombre }} {% endfor %}
{# ==== TEMPLATE DE LA CLASE DELETEVIEW ==== #} {% extends 'base.html' %} {% block content %}{% endblock %}eliminar ?
En caso de que que no definamos template_name en AztrockUpdate y AztrockCreate, la clase
buscara en el directorio template general y el directorio template de la aplicacion, el siguiente
template por defecto. aztrock_form.html.
En el caso de AztrockDelete, la clase buscara apps/aztrock_confirm_delete.html, se debe confirmar
la eliminacion, para poder eliminar lo que queremos.
En este ejemplo no necesitamos crear un Form ya que la clase crea el formulario y podemos seleccionar
el campo que deseamos ver.