7.4. Habilitar Modelos en Django Admin¶
Práctica de habilitar los modelos con la interfaz web del Django Admin de Django.
7.4.1. Requisitos previos¶
Para trabajar una aplicación Django requiere instalar la siguiente
librería:
Requisitos previos para Django framework.
7.4.2. Estructura de proyecto¶
Crear estructura de proyecto Django, con el siguiente comando:
mkdir -p ~/proyectos/django/acmeweb && cd $_
Ejecutar el comando django-admin dentro del directorio
~/proyectos/django, con el siguiente comando:
django-admin startproject acmeweb && cd $_
Este comando crea un directorio el directorio acmeweb con varios
archivos dentro, a continuación se muestra:
proyectos/
└── django/
└── acmeweb/
├── acmeweb/
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
Si tiene la estructura de archivo previa, entonces puede continuar los procesos de ejecución del código fuente.
Truco
Si quiere entender para que funciona cada archivo consulte la documentación.
7.4.3. Ejecutar aplicación Django¶
Para ejecutar aplicación Web Django, con el siguiente comando:
python3 manage.py runserver
De esta forma, una vez ejecutado el comando, se puede abrir desde con su navegador Web favorito (Mozilla Firefox, Google Chrome, etc) la siguiente dirección http://127.0.0.1:8000/
Figura 7.4, Landing Page en Django¶
Mostrará el Landing Page de Django, como la figura anterior.
Realizar el tutorial de «Escribiendo su primera aplicación en Django, parte 1».
Realizar el tutorial de «Escribiendo su primera aplicación en Django, parte 2».
Luego de realizar ambos tutoriales anteriores, la estructura del proyecto tiene que estar como la siguiente:
proyectos/
└── django/
└── acmeweb
├── acmeweb
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── polls
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
Si llego hasta el final del tutorial de «Escribiendo su primera aplicación en Django, parte 2»
el archivo polls/admin.py debe contener el siguiente código fuente:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
Si tiene el código fuente anterior, y ejecutado el runserver puede abrir desde con su navegador
Web favorito (Mozilla Firefox, Google Chrome, etc) la siguiente dirección: http://127.0.0.1:8000/admin/polls/question/
El código fuente anterior, da como resultado la habilitación del modelo Question dentro de la
interfaz web Django Admin como se muestra a continuación:
Figura 7.5,
Modelo Question desde el Django Admin¶
Mostrará el listado predeterminado del modelo Question, como la figura anterior.
Seguidamente presione la combinación de tecla Crtl+C para finalizar
la ejecución del runserver.
A continuación debe adecuar el archivo polls/admin.py para agregar el modelo Choice, con el
siguiente contenido:
from django.contrib import admin
from .models import Question, Choice
admin.site.register(Question)
admin.site.register(Choice)
Si tiene el código fuente anterior, y ejecutado el runserver puede abrir desde con su navegador
Web favorito (Mozilla Firefox, Google Chrome, etc) la siguiente dirección: http://127.0.0.1:8000/admin/polls/choice/
El código fuente anterior, da como resultado la habilitación del modelo Choice dentro de la
interfaz web Django Admin como se muestra a continuación:
Figura 7.6,
Modelo Choice desde el Django Admin¶
Mostrará el listado predeterminado del modelo Choice, como la figura anterior.
7.4.3.1. clase ModelAdmin¶
La clase ModelAdmin es la representación de un modelo en la interfaz de administración Django Admin.
Por lo general, se almacenan en un archivo llamado admin.py en su aplicación.
A continuación, debe adecuar el archivo polls/admin.py para extender comportamientos de la gestión
de los modelos Question y Choice en la interfaz Django Admin, agregando el siguiente contenido:
from django.contrib import admin
from .models import Question, Choice
class QuestionAdmin(admin.ModelAdmin):
model = Question
extra = 3
list_display = ("question_text", "pub_date")
list_filter = ["pub_date"]
search_fields = ["question_text"]
class ChoiceAdmin(admin.ModelAdmin):
fieldsets = [
("The Question", {"fields": ["question"]}),
("Choices text of Question", {"fields": ["choice_text"]}),
("Total of votes", {"fields": ["votes"]}),
]
list_display = ("choice_text", "question", "votes")
list_filter = ["choice_text"]
search_fields = ["question__question_text", "choice_text"]
admin.site.register(Question, QuestionAdmin)
admin.site.register(Choice, ChoiceAdmin)
Detenga el runserver presionando la combinación de teclas Crtl+c y inicie de nuevo
el runserver, con el siguiente comando:
python3 manage.py runserver
De esta forma, una vez ejecutado el comando, se puede abrir desde con su navegador Web favorito (Mozilla Firefox, Google Chrome, etc) la siguiente dirección http://127.0.0.1:8000/admin/polls/question/
Figura 7.7,
El admin.ModelAdmin extiende el modelo Question en el Django Admin¶
Mostrará el listado del modelo Question, extendiendo los comportamientos de la gestión de los
modelos desde la Django Admin, como la figura anterior.
De esta forma, una vez ejecutado el comando, se puede abrir desde con su navegador Web favorito (Mozilla Firefox, Google Chrome, etc) la siguiente dirección http://127.0.0.1:8000/admin/polls/choice/
Figura 7.8,
El admin.ModelAdmin extiende el modelo Choice en el Django Admin¶
Mostrará el listado del modelo Choice, extendiendo los comportamientos de la gestión de los
modelos desde la Django Admin, como la figura anterior.
De esta forma, ha aprendió nociones básicas para habilitar la gestión de los modelos dentro de la interfaz Django Admin.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.
La hora aquí es actualmente 7:35 PM UTM.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.