Django 101

Administrando la aplicación

El framework django concidera que la administración del contenido de una aplicación muchas veces puede ser una tarea tediosa tanto para los desarrolladores como para los ususarios del sistema. Por lo tanto el framework nos brinda una administración automáticamente generada del sistema que hemos creado. Para habilitar esta administración debemos seguir algunos simples pasos.

  • Agregar la línea "django.contrib.admin" en INSTALLED_APP del archivo settings.py
  • Ejecutar el comando python manage.py syncdb para agregar las tablas de administración en la base de datos
  • Editar el archivo sitio-encuestas/urls.py “descomentando” las líneas comentadas abajo de la línea “# Uncomment the next two lines to enable the admin:” y de la línea “# Uncomment the next line to enable the admin:”

El archivo debería quedar así:

from django.conf.urls.defaults import *
 
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
 
urlpatterns = patterns('',
    # Example:
    # (r'^mysite/', include('mysite.foo.urls')),
 
    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
 
    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
)

Iniciemos el servidor de prueba del framework (Nota: no usar este servidor en un ambiente de producción).

python manage.py runserver

Si ingresamos a nuestro navegador e ingresamos a la siguiente URL: http://127.0.0.1:8000/admin/ veremos la página de acceso a la administración del sistema. Luego de mirar por aquí y por alla veremos que la administración “básica” contempla el registro de usuarios y grupos para la aplicación… pero donde estan las encuestas y sus opciones. Django aún no sabe que debe incluir estas clases dentro de su administración, para lograr esto debemos crear un archivo llamado admin.py en nuestro directorio y editarlo para que se vea así:

from sitio-encuestas.encuestas.models import Encuesta
from sitio-encuestas.encuestas.models import Opcion
from django.contrib import admin
 
class OpcionInline(admin.TabularInline):
    model = Opcion
    extra = 3
 
class EncuestaAdmin(admin.ModelAdmin):
    list_filter = ['fecha_pub']
    search_fields = ['pregunta']
    date_hierarchy = 'fecha_pub'
    fieldsets = [
        (None,               {'fields': ['pregunta']}),
        ('Información de fechas', {'fields': ['fecha_pub'], 'classes': ['collapse']}),
    ]
    inlines = [OpcionInline]
 
admin.site.register(Encuesta, EncuestaAdmin)

Este código crea un par de clases de ayuda para permitirle a django formatear las diferentes ventanas de administración de las clases de nuestro modelo. Resumiendo un poco le estoy diciendo a la configuración de django que quiero administrar la clase Encuesta como clase principal filtrandola por su fecha de publicación y permitiendo la busqueda de la misma a través de su pregunta. En la edición de la clase Encuesta nos encontraremos con un formulario que utiliza un fieldset en donde se ingresa primero la pregunta y luego (colapsada) esta la fecha de publicación. Por debajo de este fieldset se encuentrán en principio 3 opciones, pero cada vez que las completamos veremos que django agrega 3 opciones mas.

Bien, espero que con esta pequeña introducción haya despertado su apetito por este potente framework. Sientanse libres de realizar cualquier critica sobre este post.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • email
  • StumbleUpon
  • Technorati
  • DZone
  • LinkedIn
  • Linkter
  • Netvouz
  • YahooMyWeb
  • blogmarks
  • TwitThis

Pages: 1 2

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">