¡Felicidades! Has completado todos los pasos para configurar un proyecto Django desde cero y has visto cómo empezar a darle forma a tu panel de administración. Aunque parezcan muchos pasos pequeños, cada uno es fundamental para construir aplicaciones web robustas y bien organizadas.
Hagamos un mini resumen de esta primera parte del Episodio 2:
pip
.list_display
, list_filter
y search_fields
.¡Es un montón! Siéntete orgulloso de todo lo que has aprendido y configurado.
¡Has alcanzado la cima de la configuración inicial de Django!
django-import-export
Antes de proponerte el ejercicio final de este episodio, quiero mencionarte una librería que puede ser increíblemente útil, especialmente cuando trabajas con datos existentes o necesitas compartir los datos de tu aplicación: django-import-export
.
Esta librería te permite, como su nombre indica, importar y exportar datos de tus modelos en formatos comunes como Excel (.xls
, .xlsx
), CSV, JSON, y otros. Imagina que ya tienes una lista de 1000 proveedores en una hoja de Excel y no quieres cargarlos uno por uno en el admin de Django. ¡Con django-import-export
podrías subirlos todos de una vez!
Se instala de la misma manera que Jazzmin:
pip install django-import-export
Luego, la agregas a INSTALLED_APPS
en tu settings.py
y la configuras en tu admin.py
(similar a como hicimos con ModelAdmin
, pero usando clases de django-import-export
). Te dejo esto como una "tarea para el hogar" opcional si te interesa investigar más. ¡La documentación oficial es tu amiga!
La práctica hace al maestro, y ahora es tu oportunidad de consolidar todo lo que hemos visto. Te propongo el siguiente desafío:
Desafío: Crear un Modelo para "Cliente"
Siguiendo los mismos pasos que utilizamos para crear nuestro modelo Proveedor
, ahora te toca a ti crear un modelo para gestionar Clientes.
Aquí tienes una guía de los pasos que deberías seguir:
Cliente
:
libreta/models.py
.Cliente
que herede de models.Model
.nombre
(Texto, obligatorio, máximo 255 caracteres)apellido
(Texto, obligatorio, máximo 255 caracteres)email
(Email, opcional, debe ser único si decides que así sea)telefono
(Número entero, opcional)fecha_nacimiento
(Fecha, opcional)__str__(self)
para que se muestre bien en el admin (por ejemplo, que muestre nombre y apellido).models.py
.python manage.py makemigrations
(o python3...
). Deberías ver que Django detecta tu nuevo modelo Cliente
y crea un nuevo archivo de migración.python manage.py migrate
. Django aplicará los cambios a la base de datos.Cliente
en el administrador:
libreta/admin.py
.from .models import Cliente
(Si ya tenías la línea para Proveedor, simplemente agrega Cliente: from .models import Proveedor, Cliente
).
ClienteAdmin
que herede de admin.ModelAdmin
.@admin.register(Cliente)
sobre tu nueva clase.ClienteAdmin
, define un list_display
con los campos que quieras ver en la lista (ej: nombre
, apellido
, email
).list_filter
(quizás por apellido) y search_fields
(para buscar por nombre, apellido o email).admin.py
.python manage.py runserver
./admin
) en tu navegador.Un error común: Recuerda, si modificas tus modelos y olvidas ejecutar makemigrations
y luego migrate
, tu base de datos no se actualizará y probablemente encuentres errores. El comando makemigrations
es tu primera línea de defensa, ya que también te ayuda a detectar errores en la definición de tu modelo antes de que se apliquen a la base de datos.
En el video de cierre, repasamos lo aprendido y te doy más pistas para el ejercicio.
¡Has completado la configuración inicial y la creación de tus primeros modelos y su gestión en el admin! Esto es una base increíblemente sólida.
En futuros episodios, podríamos explorar:
Por ahora, ¡celebra tu progreso! Has aprendido muchísimo. La programación es un viaje de aprendizaje constante, y cada paso, por pequeño que parezca, te acerca más a crear cosas asombrosas.
¡Nos vemos en el próximo episodio!