Tema 7: Gestión del fichero admin.py en Django

10/04/2023

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Uno de los componentes de Django es el fichero "admin.py", que forma parte del módulo de administración de Django. Este módulo permite gestionar los modelos de datos de nuestra aplicación de manera sencilla y rápida a través de una interfaz web.

En este tutorial, vamos a explicar cómo configurar el fichero admin.py en Django, qué se puede lograr con él y para qué podemos usarlo.

Índice
  1. Paso 1: Crear una aplicación Django y un modelo
  2. Paso 2: Habilitar el módulo de administración de Django
  3. Paso 3: Configurar el fichero admin.py
  4. Paso 4: Personalizar la vista de administración
  5. Conclusión

Paso 1: Crear una aplicación Django y un modelo

Antes de configurar el fichero admin.py, es necesario tener una aplicación Django y un modelo. Para esto, sigue estos pasos:

  1. Crea un proyecto Django: Ejecuta el comando django-admin startproject mi_proyecto.
  2. Crea una aplicación dentro del proyecto: Ejecuta el comando python manage.py startapp mi_app.
  3. Define un modelo en el archivo models.py de la aplicación. Por ejemplo:
from django.db import models

class MiModelo(models.Model):
    nombre = models.CharField(max_length=100)
    descripcion = models.TextField()

    def __str__(self):
        return self.nombre

Paso 2: Habilitar el módulo de administración de Django

Para habilitar el módulo de administración de Django, sigue estos pasos:

  1. Asegúrate de que la aplicación django.contrib.admin esté incluida en la lista INSTALLED_APPS en el archivo settings.py del proyecto.
  2. Asegúrate de que la aplicación mi_app también esté incluida en la lista INSTALLED_APPS en el archivo settings.py del proyecto.
  3. Ejecuta el comando python manage.py migrate para aplicar las migraciones y crear las tablas necesarias en la base de datos.

Paso 3: Configurar el fichero admin.py

Ahora que tenemos una aplicación y un modelo, podemos configurar el fichero admin.py. Abre el archivo admin.py en la carpeta de la aplicación mi_app y sigue estos pasos:

  1. Importa el modelo que deseas registrar en el panel de administración:
from .models import MiModelo
  1. Importa la clase admin:
from django.contrib import admin
  1. Registra el modelo con la clase admin.ModelAdmin:
@admin.register(MiModelo)
class MiModeloAdmin(admin.ModelAdmin):
    pass

Alternativamente, puedes usar el método admin.site.register():

admin.site.register(MiModelo, MiModeloAdmin)

Con esto, ya tendrás registrado el modelo en el panel de administración de Django. Ahora puedes acceder al panel de administración en la URL http://127.0.0.1:8000/admin/ y verás el modelo registrado.

Paso 4: Personalizar la vista de administración

Dentro de la clase MiModeloAdmin, puedes personalizar la vista de administración de tu modelo, como modificar la lista de campos mostrados, agregar filtros, búsqueda, etc. A continuación, algunos ejemplos de personalización:

  • Mostrar solo ciertos campos en la lista de objetos:
list_display = ('nombre', 'descripcion')
  • Agregar filtros en la vista de lista de objetos:
list_filter = ('nombre',)
  • Habilitar búsqueda en la vista de lista de objetos:
search_fields = ('nombre', 'descripcion')
  • Establecer el orden de los campos en el formulario de edición:
fields = ('nombre', 'descripcion')
  • Agrupar campos en el formulario de edición usando fieldsets:
fieldsets = (
    ('Información básica', {
        'fields': ('nombre', 'descripcion')
    }),
)
  • Agregar pestañas de relaciones en línea (Inline) para modelos relacionados:

Supongamos que tienes un segundo modelo relacionado con MiModelo:

class ModeloRelacionado(models.Model):
    mi_modelo = models.ForeignKey(MiModelo, on_delete=models.CASCADE)
    atributo = models.CharField(max_length=100)

    def __str__(self):
        return self.atributo

Puedes agregar pestañas de relaciones en línea en el formulario de edición de MiModelo de la siguiente manera:

Primero, importa InlineModelAdmin en el archivo admin.py:

from django.contrib.admin import InlineModelAdmin

Luego, crea una subclase de InlineModelAdmin para ModeloRelacionado:

class ModeloRelacionadoInline(admin.TabularInline):
    model = ModeloRelacionado
    extra = 1

Finalmente, agrega la clase ModeloRelacionadoInline a la lista inlines en MiModeloAdmin:

inlines = [ModeloRelacionadoInline]

Con estos ejemplos, puedes personalizar aún más el panel de administración de Django para adaptarlo a tus necesidades.

Conclusión

El fichero admin.py en Django es una herramienta muy útil para configurar y personalizar el módulo de administración de nuestra aplicación. A través de él, podemos gestionar nuestros modelos de datos de manera rápida y sencilla, facilitando el proceso de desarrollo y mantenimiento de nuestra aplicación web. Este tutorial te ha mostrado cómo configurar el fichero admin.py, qué se puede lograr con él y para qué podemos usarlo. Ahora puedes aplicar estos conocimientos en tu propio proyecto Django para sacar el máximo provecho del módulo de administración.

Pionera del caos

Ingeniera Informática con Máster en Bioinformática, casi doctora y freelancer. Todo lo que te cuento en este blog son aprendizajes que yo misma he tenido ya sea durante mis estudios o en otros proyectos!

Otras Entradas Relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *



Para continuar es necesario que confirmes la política de privacidad de la web.

Subir