Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Django Admin Desarrollo con el framework Django

Ya vamos por buena parte del curso, y ahora que sabes cómo crear modelos y trabajar con datos, es momento de ver una de las herramientas más útiles que nos ofrece Django para los desarrolladores: el panel de administración o Django Admin.

Vamos a explicarlo de forma sencilla, como si estuvieras hablando con un amigo que quiere que le muestres cómo manejar su propia base de datos sin escribir líneas infinitas de código para cada acción.


¿Qué es Django Admin?

🛠️ Django Admin es una herramienta automática que nos da Django para administrar el contenido del sitio web. O sea, que podemos crear, editar o borrar datos sin tener que armar nuestros propios formularios desde cero.

Esta funcionalidad es solo para usuarios con permisos especiales: editores, moderadores o administradores (como tú, desarrollador). Los visitantes del sitio no pueden acceder a esta consola.


¿Django Admin ya está activado?

Sí. Cuando creas un proyecto Django nuevo, el admin viene listo para usarse. Si revisas tu archivo principal urls.py, esto ya está configurado:

from django.contrib import admin
from django.urls import path

urlpatterns = [
    # otras rutas...
    path('admin/', admin.site.urls),
]

Eso significa que, al abrir http://localhost:8000/admin en el navegador, verás la pantalla de acceso al panel de administración:

image_login


Crear un superusuario

Para ingresar al panel admin, necesitas una cuenta de usuario que tenga permisos especiales. Lo más común es crear un "superusuario": un usuario con control total del sitio.

Desde la terminal, en la raíz de tu proyecto, escribe:

python manage.py createsuperuser

Sigue las instrucciones y completa los campos:

Username: admin
Email address: admin@example.com
Password: ********
Password (again): ********
Superuser created successfully.

¡Listo! Ahora puedes ingresar al panel con ese usuario:

image_1

Verás algunos elementos por defecto como "Usuarios" y "Grupos". Esto lo provee el sistema de autenticación de Django.


¿Cómo mostrar nuestros modelos en el panel de administración?

Por defecto, solo aparecen los modelos del sistema. Para mostrar tus propios modelos (como un modelo Article), tienes que registrarlos.

Supongamos que ya tienes una aplicación con un modelo Article. Abre el archivo admin.py que está dentro de esa app (no en el proyecto principal) y registra la clase así:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

Cuando actualices la página del admin, verás que ahora hay una nueva sección con tus artículos:

image_2

Ahora puedes crear, modificar o eliminar artículos desde esta interfaz visual.

Pero el listado puede verse feo al comienzo. ¿Por qué?

image_3

Esto es porque Django muestra el valor por defecto de los objetos: el nombre de la clase y el id.

Para que sea más claro, podemos decirle a Django qué texto mostrar sobre cada objeto. Esto se hace sobrescribiendo el método str() en el modelo:

class Article(models.Model):
    name = models.CharField(max_length=200)
    body = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name  # Mostramos el nombre del artículo

Ahora el listado se verá más humanamente legible:

image_4


Que sea más útil: búsquedas y filtros

El Django Admin se puede personalizar más. Por ejemplo:

  • Buscar por palabras clave en artículos
  • Mostrar más columnas en la lista de objetos
  • Agregar filtros por fecha

Agregar un buscador

Podemos definir una interfaz para que el administrador busque artículos por nombre o contenido.

Edita admin.py así:

from django.contrib import admin
from .models import Article

class ArticleAdmin(admin.ModelAdmin):
    search_fields = ['name', 'body']  # Los campos por los que se puede buscar

admin.site.register(Article, ArticleAdmin)

Y así se verá el buscador:

image_5

Usar decoradores para simplificar

También puedes registrar el modelo usando un decorador, lo que hace el código más limpio:

from django.contrib import admin
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    search_fields = ['name', 'body']

Mostrar más columnas y filtrar por fechas

Supongamos que queremos que el listado muestre, además del nombre del artículo, la fecha de publicación. También queremos poder filtrar los artículos por esa fecha. Para lograrlo, hacemos lo siguiente:

from django.contrib import admin
from django.contrib.admin import DateFieldListFilter
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ('name', 'created_at')  # Campos visibles en la lista
    search_fields = ['name', 'body']
    list_filter = (('created_at', DateFieldListFilter),)  # Filtro por fecha

Y ahora el panel se verá así:

image_6

De esta forma, los administradores pueden navegar y gestionar artículos fácilmente.


Resumen

  • Django Admin es una herramienta que permite gestionar los datos del sitio rápidamente.
  • Para acceder necesitas un superusuario: créalo con python manage.py createsuperuser.
  • Las rutas para el admin ya vienen configuradas por defecto (/admin).
  • Para mostrar tus modelos en el admin, regístralos en el archivo admin.py usando admin.site.register() o @admin.register().
  • Usa el método __str__() para mostrar tus objetos con nombres legibles.
  • Puedes personalizar la lista de objetos:
    • list_display: define qué campos mostrar en la tabla
    • search_fields: permite buscar en los campos que indiques
    • list_filter: añade filtros por campo, por ejemplo fechas


Trabajo independiente

Práctica con el panel de administrador

En esta actividad pondrás en práctica la teoría para manejar datos desde el administrador de Django. Sigue estos pasos:

  1. Realiza todos los pasos de la teoría.
  2. Intenta agregar, modificar y eliminar datos desde la sección de administrador.

Materiales adicionales

  1. Django Admin

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY