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/(?P\d+)/$', AztrockUpdate.as_view(), name='aztrock_actualizar'),
url(r'aztrock/(?P\d+)/borrar/$', AztrockDelete.as_view(), name='aztrock_eliminar'),
)
template
form.hml
CreateView y UpdateView
{# ==== TEMPLATE DE LA CLASE CREATEVIEW Y UPDATEVIEW ==== #}
{% extends "base.html" %}
{% block content %}
listar
{{ form }}
{% endblock %}
blog_aztrock.html
{# ==== 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 %}
eliminar ?
{% endblock %}
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.