Personaliza el Administrador de Django como un PRO

¡Hola de nuevo!

Hemos estado profundamente inmersos en aprender nuevos conceptos de programación, pero no hemos olvidado nuestro enfoque en el desarrollo BackEnd con Django, un marco que estoy empezando a amar por su potencial y simplicidad. Y en esta primera publicación sobre Django, profundizamos en el ámbito de personalizar su administrador. Si has trabajado con Django, probablemente ya esté familiarizado con esta poderosa herramienta que facilita la gestión del contenido de nuestros proyectos. ¿Pero sabías que podemos llevarlo al siguiente nivel y adaptarlo por completo a nuestras necesidades?

¡Descubramos cómo hacerlo!

¿Por qué personalizar el administrador de Django?

El administrador de Django, en su versión predeterminada, ya ofrece una interfaz bastante completa para administrar nuestros modelos. Sin embargo, a medida que nuestros proyectos crecen y se vuelven más complejos, es posible que necesitemos un control más granular sobre cómo se muestran y gestionan los datos. Aquí es donde entra la personalización.

Personalizar el administrador Django nos permite:

Práctica: Un ejemplo práctico con el modelo Post

Para ilustrar cómo personalizar el administrador de Django, trabajaremos con el modelo Post que podría ser para un blog. Nuestro objetivo es configurar el administrador para mostrar la información más relevante sobre nuestras publicaciones de manera clara y concisa, y permitirnos filtrar y buscar fácilmente entre ellas.

Aquí está el código que usaremos para personalizar el administrador para nuestro modelo Post:

from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ["title", "slug", "author", "publish", "status"]
    list_filter = ["status", "created", "publish", "author"]
    search_fields = ["title", "body"]
    prepopulated_fields = {"slug": ("title",)}
    raw_id_fields = ["author"]
    date_hierarchy = "publish"
    ordering = ["status", "publish"]
    show_facets = admin.ShowFacets.ALWAYS

Analicemos cada parte del código:

@admin.register(Post): Este decorador registra nuestro modelo de publicación con la clase Postadmin, que es donde definimos nuestras personalizaciones.

class PostAdmin(admin.ModelAdmin): Esta clase hereda de Admin.ModelAdmin y nos da acceso a un conjunto de atributos que podemos modificar para personalizar el administrador.

list_display: Define las columnas que se mostrarán en la lista de publicaciones.

list_filter: Agrega filtros a la lista de publicaciones.

search_fields: Permite buscar publicaciones por título y contenido.

prepopulated_fields: Completa automáticamente el campo “Slug” en función del título.

raw_id_fields: Muestra un campo de identificación en lugar de un menú desplegable para seleccionar el autor.

date_hierarchy: Permite navegar entre publicaciones jerárquicamente por fecha de publicación.

ordering: Publicaciones por estado y luego por fecha de publicación.

show_facets: Muestra facetas en la interfaz de administración (Disponible en Django 4.2 o superior).

img

Más allá de lo básico: explorar opciones avanzadas

Las opciones que hemos visto son solo la punta del iceberg. El administrador de Django ofrece infinitas posibilidades de personalización. Podemos, por ejemplo:

Crear campos personalizados: Para mostrar información calculada o especialmente formateada.

Agregar acciones personalizadas: Para realizar operaciones en múltiples publicaciones a la vez.

Definir vistas personalizadas: Para crear páginas con funcionalidades específicas dentro del administrador.

Conclusión

Como hemos visto, la personalización del administrador de Django es una forma poderosa de optimizar la gestión de contenido en nuestros proyectos de Django. Te invito a seguir explorando todas las opciones que ofrece y adaptar el administrador a nuestro flujo de trabajo particular.

logo

© 2025 Yorch Webs

Instagram GitHub