CRUD Class View Django

Explicaremos de la manera  mas sencilla posible como hacer para crear un sistema de Lectura, escritura, actualizacion  y borrado mas conocido como CRUD utilizando Class View en django 1.5 y 1.6

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 %}
{% endblock %}
eliminar_blog.html
{# ==== TEMPLATE DE LA CLASE DELETEVIEW ==== #}
{% extends 'base.html' %}

{% block content %}

eliminar ?

{% csrf_token %}
{% 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.

Entradas más populares de este blog

Convertir disco virtualbox.ova a qemu.qcow2

Mi cambio de asterisk a FreeSWITCH

Python, Redis una combinacion estupenda.

disqus

comments powered by Disqus