Episodio 2, Capítulo 22

Cierre y Ejercicio Propuesto

⏱️ Tiempo de lectura: 5 minutos
🧩 Actividades: 1 (Ejercicio)
📚 Nivel: Principiante

🎉 ¡Hemos Llegado Lejos, Programador Mortal!

¡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:

  • Entendimos qué es Django y por qué es una herramienta tan útil.
  • Verificamos (o instalamos) Python, el lenguaje base.
  • Creamos y activamos un entorno virtual para mantener nuestro proyecto aislado y ordenado.
  • Instalamos Django usando pip.
  • Instalamos VS Code como nuestro editor de código.
  • Creamos nuestro primer proyecto Django y lo vimos funcionar.
  • Aplicamos las migraciones iniciales para preparar la base de datos.
  • Creamos un superusuario para acceder al panel de administración.
  • Exploramos el panel de admin y aprendimos a registrar nuestros propios modelos.
  • Personalizamos la vista de nuestros modelos en el admin con list_display, list_filter y search_fields.
  • ¡Y hasta le dimos un look más moderno al admin con Django Jazzmin!

¡Es un montón! Siéntete orgulloso de todo lo que has aprendido y configurado.

Persona celebrando un logro en una montaña

¡Has alcanzado la cima de la configuración inicial de Django!

🛠️ Una Herramienta Extra para tu Caja: 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:

Terminal (entorno activado)
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!

💪 Ejercicio Final del Episodio: ¡Tu Turno de Crear!

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:

  1. Definir el modelo Cliente:
    • Abre el archivo libreta/models.py.
    • Crea una nueva clase llamada Cliente que herede de models.Model.
    • Define al menos los siguientes campos para tu cliente (¡puedes agregar más si quieres!):
      • 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)
    • No olvides agregar el método __str__(self) para que se muestre bien en el admin (por ejemplo, que muestre nombre y apellido).
    • Guarda el archivo models.py.
  2. Crear y aplicar las migraciones:
    • Abre tu terminal (con el servidor detenido y el entorno virtual activado).
    • Ejecuta: python manage.py makemigrations (o python3...). Deberías ver que Django detecta tu nuevo modelo Cliente y crea un nuevo archivo de migración.
    • Luego ejecuta: python manage.py migrate. Django aplicará los cambios a la base de datos.
  3. Mostrar el modelo Cliente en el administrador:
    • Abre el archivo libreta/admin.py.
    • Importa tu nuevo modelo:
      from .models import Cliente
      (Si ya tenías la línea para Proveedor, simplemente agrega Cliente: from .models import Proveedor, Cliente).
    • Crea una nueva clase ClienteAdmin que herede de admin.ModelAdmin.
    • Usa el decorador @admin.register(Cliente) sobre tu nueva clase.
    • Dentro de ClienteAdmin, define un list_display con los campos que quieras ver en la lista (ej: nombre, apellido, email).
    • Opcional: Agrega también list_filter (quizás por apellido) y search_fields (para buscar por nombre, apellido o email).
    • Guarda el archivo admin.py.
  4. Verificar:
    • Corre el servidor: python manage.py runserver.
    • Ve al panel de administración (/admin) en tu navegador.
    • ¡Deberías ver tu nueva sección "Clientes" (o similar) dentro de la app "Libreta"!
    • Prueba a agregar algunos clientes de ejemplo.

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.

🚀 ¿Qué Sigue Después de Este Episodio?

¡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:

  • Cómo crear vistas y plantillas personalizadas para que los usuarios finales interactúen con tu aplicación (¡no solo a través del admin!).
  • Manejo de formularios más complejos.
  • Relaciones entre modelos (por ejemplo, cómo un cliente puede tener varias compras).
  • Autenticación de usuarios para tu sitio público.
  • ¡Y mucho, mucho más!

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!