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/

Landing Page en Django

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:

Modelo Question desde el Django Admin

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:

Modelo Choice desde el Django Admin

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/

El admin.ModelAdmin extiende el modelo Question en el Django Admin

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/

El admin.ModelAdmin extiende el modelo Choice en el Django Admin

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.

Contrata mi increíble soporte profesional