Fundamentos de Django
Entornos Virtuales y Configuración de Django en Python
Instalación y configuración de Django con pip y django-admin
Arquitectura MBT en Frameworks Web: Model, View y Template
Modelo, Vista y Plantilla en Django: Creación y Conexión Básica
La M en el Patrón: Modelo
Modelos y Migraciones en Django ORM
Manejo Avanzado de Modelos y Bases de Datos
Migraciones en Django: Creación de Tablas en la Base de Datos
Creación y Gestión de Campos en Tablas de Django ORM
Modificación y Eliminación de Datos en Base de Datos con Python
Relaciones y Asociaciones entre Modelos
Relaciones de Tablas Uno a Muchos con Django
Relaciones de Muchos a Muchos en Modelos de Base de Datos
Relaciones 1 a 1 en Django: Creación y Gestión de Perfiles de Autor
Uso de Managers en Django para Consultas de Base de Datos
Configuración de URLs y Vistas Avanzadas
URLs Dinámicas en Django: Creación y Gestión Eficiente
Vistas en Django: Funciones vs Clases y su Implementación
La T en el Patrón: Plantillas o Templates
Templates y Tags en Django: Creación de Aplicaciones Web
Desarrollo de Aplicaciones en Django
Configuración de Proyecto Django: Entorno, Extensiones y Repositorio
Creación de Modelos de Producto en Django para Cafeterías
Instalación y uso de Pillow para campos de imagen en Django
Creación y Gestión de Formularios con Django
Creación de Plantillas con Django y Tailwind CSS
Administración de Modelos en Django: Configuración y Uso de Django Admin
Creación de Login y Registro de Usuarios en Django
Creación de una Aplicación de Pedidos en Django
Detalle de Orden y Personalización de Vistas en Django
Corrección de errores en MyOrderView para autenticación de usuario
Crear y configurar vistas para agregar productos a una orden en Django
Django Rest Framework
Creación de APIs con Django REST Framework
Despliegue de aplicaciones Django
Configuración de Bases de Datos con Django y AWS RDS
Uso de Django Environ para Manejar Credenciales Seguras
Testing de Aplicaciones Django con Unit Tests
Despliegue de Proyectos Django en AWS: Configuración y Mejora de Código
Despliegue de Aplicaciones con AWS Elastic Beanstalk y Django
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aprender a relacionar tablas es fundamental para manejar datos interconectados en Django
Para iniciar, creamos la clase Publisher
que hereda de models.Model
. Incluimos atributos como name
y address
utilizando models.TextField
con un max_length
de 200, un valor que puedes ajustar según tus necesidades de datos.
class Publisher(models.Model):
name = models.TextField(max_length=200)
address = models.TextField(max_length=200)
def __str__(self):
return self.name
La clase Book
también hereda de models.Model
y contiene atributos como title
, publication_date
y publisher
. Utilizamos models.DateField
para manejar fechas y establecemos una relación con Publisher
usando models.ForeignKey
.
class Book(models.Model):
title = models.TextField(max_length=200)
publication_date = models.DateField()
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
def __str__(self):
return self.title
La relación se establece con models.ForeignKey
, donde especificamos el modelo relacionado (Publisher
) y el comportamiento al eliminar (on_delete=models.CASCADE
). Esto asegura que si un editor se elimina, también se eliminarán sus libros.
Para aplicar estos cambios a la base de datos, creamos y aplicamos las migraciones con los comandos:
python manage.py makemigrations
python manage.py migrate
Para facilitar la interacción con la base de datos, instalamos ipython
con:
pip install ipython
Esto mejora la experiencia en la shell permitiendo autocompletar y otras funcionalidades útiles.
Dentro de la shell, primero creamos un Publisher
y luego un Book
relacionado.
from myapp.models import Publisher, Book
publisher = Publisher(name="Editorial Example", address="123 Main St")
publisher.save()
book = Book(title="Two Scoops of Django", publication_date="2024-07-17", publisher=publisher)
book.save()
Aportes 12
Preguntas 3
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?