El administrador de Django

por lunes, septiembre 21, 2015 0 No tags Permalink 0

El administrador de Django es creado por defecto por el sistema y permite añadir, modificar o eliminar las entradas en la base de datos. Es un administrador escrito únicamente para el uso de los administradores del sitio con una interface clara y de fácil manejo.

Creación del super usuario

El primer paso es crear un usuario y contraseña:

iMac27:mysite JMG$ python manage.py createsuperuser
Username (leave blank to use 'jmg'): admin
Email address: myemail@domain.com
Password: 
Password (again): 
Superuser created successfully.

Inicialización del servidor

A continuación activamos el servidor de desarrollo:

$ python manage.py runserver

y vemos el aspecto del administrador en http://127.0.0.1:8000/admin/.

Manejar los objetos de una aplicación desde el administrador

Para ello debe modificarse el archivo admin.py en la carpeta de la aplicación. En el caso del ejemplo básico descrito en una entrada previa, añadimos las líneas correspondientes a dicho archivo:

from django.contrib import admin
from .models import Question
admin.site.register(Question)

Como vemos, se ha importado el modelo Question y se ha asociado con el administrador. Recargando la página, vemos como una nueva “tabla” aparece.

Añadir objetos relacionados

Anteriormente hemos habilitado el modo en que el modelo Question era accesible desde el administrador. Ahora bien, cada objeto Question tiene asociado un objeto Choice. Es decir, son dos tablas que están relacionadas. Las formas de relacionarlas en Django se obtiene creando nuevos modelos (clases) que definan dicha relación. El archivo admin.py tendrá ahora el siguiente código:

from django.contrib import admin
from .models import Question, Choice
class ChoiceInline(admin.TabularInline):
 model = Choice
 extra = 3

class QuestionAdmin(admin.ModelAdmin):
 fieldsets = [
 (None, {'fields': ['question_text']}),
 ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
 ]
 inlines = [ChoiceInline]
admin.site.register(Question, QuestionAdmin)

El administrador puede customizarse en gran medida y adaptarse a cualquiera de nuestras necesidades. Pero dado de que solo queremos hacer ahora una primera aproximación, lo vamos a dejar aquí por el momento.

Comments are closed.