Django desde Cero: Sitio de Administración

Publicado el 04 septiembre 2013 por Codehero @codeheroblog

Bienvenidos una vez más a Django desde Cero, curso en el cual aprendemos a programar sin conocimiento alguno. En el capítulo anterior, te enseñe como crear páginas dinámicas con Django. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al capítulo anterior para que te pongas en contexto (Capítulo 3 – Vistas Dinámicas)

Hoy, vamos a ver como configurar, acceder y manejar el módulo de administrador que viene pre-instalado con Django. Dicho módulo nos permite gestionar nuestro sitio sin necesidad de escribir más código (lo que tendríamos que hacer si estuviéramos creando un sitio desde cero).

¡Alerta!

Todos los ejemplos usados en el tutorial de son una continuación de los ejemplos del capitulo anterior.


¿Cómo configurar el módulo de administrador?

Muy sencillo. Lo primero que tenemos que hacer es ir al archivo urls.py dentro de la carpeta PrimerBlog, y descomentar las siguientes líneas:

from django.contrib import admin
admin.autodiscover()

...

url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),

Al descomentar estas líneas estamos permitiendo el acceso al sitio de administrador cuando navegamos a la siguiente dirección http://127.0.0.1:8000/admin.

El archivo urls.py debería lucir así:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'PrimerBlog.views.home', name='home'),
    # url(r'^PrimerBlog/', include('PrimerBlog.foo.urls')),
    url(r'^$', 'blog.views.home', name='home'),


    # Uncomment the admin/doc line below to enable admin documentation:
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)

Al descomentar estas líneas estamos agregando las apps de administrador de Django a nuestro proyecto.

Por último debemos sincronizar la base de datos para que sean creadas las tablas de las apps de administrador. Veamos como hacerlo:

Para sincronizar la base de datos hacemos uso de syncdb:

python2.7 manage.py syncdb

Una vez que el proceso haya terminado encendemos el servidor:

python2.7 manage.py runserver

Una vez que hayamos completado estos pasos ya deberíamos tener activo el módulo de administrador en nuestra aplicación.


¿Cómo acceder al módulo de administrador?

Para acceder al módulo de administrador solo debemos navegar hacia la dirección base de nuestro proyecto y llamar al módulo admin. En nuestro caso, ya que estamos en modo de desarrollo, sería http://127.0.0.1:8000/admin/.

Nos debería aparecer en el explorador lo siguiente:

Podemos observar que nos pide un usuario y una clave. Por defecto el usuario y la clave son los que usamos para configurar nuestro súper usuario dentro de la aplicación. Si no sabes como configuramos el súper usuario te recomiendo que le eches un vistazo a Django desde Cero: Modelos y Base de Datos

Una vez que accedemos debería mostrarnos lo siguiente:


¿Cómo agregamos contenido a nuestra aplicación?

Como puedes observar el módulo de administrador viene por defecto con unos modelos que podemos usar para agregar contenido a nuestra app, estos son el modelo de Grupos, Usuarios y Sitios, pero que pasa si queremos añadir contenido a nuestro propio modelo como es el caso de los Articulos.

Es muy sencillo, lo que tenemos que hacer es lo siguiente:

Crear un archivo llamado admin.py dentro de la carpeta de la aplicación blog (En nuestro caso la dirección seria /PrimerBlog/blog). Dentro del archivo agregamos las siguientes líneas de código:

from django.contrib import admin
from models import Articulo

admin.site.register(Articulo)

Observemos lo siguiente (línea por línea):

  1. Con from django.contrib import admin estamos importando el módulo de administrador.

  2. Con from models import Articulo estamos importando nuestro módulo Articulo, el cual maneja todos los artículos dentro de nuestro blog.

  3. Con admin.site.register(Articulo) le dejamos saber al módulo de administrador que vamos a registrar un nuevo modelo, en este caso el modelo de Articulo.

Para que los cambios tomen efecto debemos reiniciar el servidor:

Lo apagamos:

CONTROL-C

Lo volvemos a encender:

python2.7 manage.py runserver

Ahora podemos observar que dentro del módulo de administrador podemos manejar nuestro propio modelo.


¿Cómo manejamos nuestro propio modelo dentro del módulo del administrador?

Con el módulo de administrador tenemos acceso a una interfaz muy poderosa a la hora de gestionar nuestros modelos pero en este tutorial solo voy a cubrir lo básico:

Listar objetos disponibles

En la página principal del administrador aparecen todos los modelos los cuales podemos gestionar. Como estamos viendo el ejemplo con nuestro propio modelo de Articulos, vamos a acceder a todos los objetos disponibles de ese tipo en la base de datos. Veamos como hacerlo:

Desde la página principal del admin haz click en el nombre del modelo, en este caso Articulos:

Podemos observar que se despliegan una lista con todos lo artículos disponibles en la base de datos:

Modificar objetos disponibles

Para modificar un objeto desde el módulo del administrador debemos hacer lo siguiente:

Navegamos a la lista de objetos disponibles y en ella hacemos click en uno de los objetos, el administrador nos debería llevar al detalle de ese objeto en particular.

Un vez en que estemos en la vista detalle podemos modificar la información de ese Artículo en particular:

Agregar un objeto

Para agregar un objeto desde el módulo del administrador debemos hacer lo siguiente:

Navegamos a la lista de objetos disponibles y en ella hacemos click en el botón que dice Add Articulos:

Rellenamos los campos necesario para generar un articulo:

Por último, hacemos click en Save para poder guardar dicho artículo. Podemos observar que ahora ese artículo esta disponible en la base de datos:

Como puedes observar el módulo de administrador nos facilita mucho las cosas a la hora de gestionar el contenido de nuestro sitio web. Si quieres indagar más en el tema te invito que visites la Documentación oficial del sitio administrador de Django


Conclusión

En esta lección, aprendimos como configurar, acceder y manejar el módulo de administrador que viene pre-instalado con Django. Si tienes alguna pregunta, yo estaré feliz de responderte en los comentarios, además espero que te unas y le eches un vistazo a todo el resto de este curso.

¡Te espero la próxima semana!