Fundamentos de Django

1

¿Qué es Django?

2

¿Cómo instalar Django?

3

Entendiendo la arquitectura de Django

4

Qué es el patrón MVT (Model, View y Template)

La M en el Patrón: Modelo

5

Introducción a Modelos y Bases de Datos

Manejo Avanzado de Modelos y Bases de Datos

6

Gestión de Modelos y Bases de Datos en Django con SQLite

7

Inserción de Datos con Django

8

Actualización y Eliminación de Datos en Django

Relaciones y Asociaciones entre Modelos

9

Creación y Gestión de Relaciones entre Modelos en Django

10

Relaciones Muchos a Muchos (N:N) en Django

11

Relaciones Uno a Uno (1:1) en Django

12

Queries y Filtros en Django: Optimización y Estrategias Avanzadas

Configuración de URLs y Vistas Avanzadas

13

Gestión de URLs en Django: Configuración, Rutas y Mejores Prácticas

14

Vistas Basadas en Clases en Django

La T en el Patrón: Plantillas o Templates

15

Personalización de Interfaz con Plantillas en Django

Desarrollo de Aplicaciones en Django

16

Configuración del Proyectos en Django

17

Creación del Modelo para la Aplicación 'Products' en Django

18

Cómo Crear Migraciones de Datos en Django

19

Creación de la Aplicación 'Products' con Formularios en Django

20

Integracion de TailwindCSS en Django

21

Django Admin

22

Manejo de Sesiones en Django

23

Manejo de Órdenes en CoffeShop

24

Manejo de Pedidos en CoffeShop

25

Mixings en vistas basadas en clases

26

Agregar productos a la orden

Django Rest Framework

27

Django REST Framework

Despliegue de aplicaciones Django

28

Configurar PostgreSQL en AWS con Django

29

Variables de entorno en Django

30

¿Cómo usar Unit Testing en Django?

31

Debugging en Django

32

Desplegar aplicaciones de Django en AWS

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
19 Hrs
7 Min
28 Seg
Curso de Django

Curso de Django

Luis Martínez

Luis Martínez

Relaciones Muchos a Muchos (N:N) en Django

10/32
Recursos

Aportes 8

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Es en el minuto 7 con 22 segundos y en el mismo minuto 7 con 43 segundos pero son en tiempos donde el profe no esta hablando por lo que no interfiere con la explicación.
Es cosa mia, o se escucha como interferencias en el audio...👀
related\_name se utiliza para la relación inversa por lo que si se definió el field authors en la clase Book, lo correcto sería que el related\_name seria books y no authors.
Veo que a profe le pasa mucho que olvida guardar los cambios, si también te sucede como a todos en algún momento y si están utilizando Visual Studio Code, pueden irse a las settings y les aparecerá en los primeros campos autosave o auto guardado y allí pueden seleccionar el que más les convenga, bien sea cuando se cambian de archivo, cuando ya no tienen el focus en el archivo entre otras opciones.
En Django, para relaciones 1:N (uno a muchos), se utiliza `ForeignKey`. Por ejemplo, en un modelo `Libro`, se puede tener un campo `author = models.ForeignKey(Autor, on_delete=models.CASCADE)`. Para relaciones N:N (muchos a muchos), se utiliza `ManyToManyField`. Por ejemplo, en el modelo `Libro`, puedes tener `autors = models.ManyToManyField(Autor, related_name='libros')` para permitir que un libro tenga múltiples autores y viceversa.
**Relación muchos a muchos** * Los libros pueden ser escritos por más de un autor * y los autores pueden tener más de un libro Allí es donde aparecen estas relaciones: ![](https://static.platzi.com/media/user_upload/image-db41b41d-ab29-4585-b912-bd3594f1d5c8.jpg)![](https://static.platzi.com/media/user_upload/image-3881df5e-139e-4107-8d30-f1a334a5b93e.jpg)
para practicar el english: <u>Summary</u> Extending the "books" example to introduce the **many to many (N:N) relationships between models (entities)** <u>How so? 🤨</u> Well ... > Books can be written by more than one Author and > every Author can write more than one Book. . <u>Practical example </u> If we wanted to add a book with more than an author in our Django app as it is... we couldn't 😣 * First, we need to make some modifications to our database structure. As before, this starts from the models.py file, in which we will: **1. Create the new Author class(model)** ```python class Author(models.Model): name = models.TextField(max_length=255) birth_date = models.DateField() def __str__(self): return self.name ```class Author(models.Model): name = models.TextField(max\_length=255) birth\_date = models.DateField() def \_\_str\_\_(self): return self.name \--- > **IMPORTANT**: We need to declare Author before Book, because... **2. Book will now receive an *authors* field (PLURAL)** which we will define as a **'ManyToManyField'**, giving it 2 parameters: * The **name** of the model|class to which we're setting the relation to * A custom **string** to refer to this field from that chosen model|class, through the **'related\_name'** attribute. **3. Changes are done. Time to update them to the database** * Save changes! * Terminal: `./ manage.py makemigrations` `./ manage.py migrate` \--- 03:00 1. **The database is ready to receive our multi-authored books!** (and multi-books authors? 😐 ) * Open new terminal, enter the shell `./ manage.py shell ` * Import the models `from my_first_app.models import Book, Publisher, Author` * Instantiate and save the authors (couldn't find the real birthday 🫠) `audry = Author(name='Audrey', birth_date='1975-01-10')` `audry.save()` `pydanny = Author(name='Pydanny', birth_date='1972-03-21')` `pydanny.save()` <u>Accessing through the shell</u> > If we were to try, through this new terminal, we *wouldn't be able* to <u>access</u> our **book** variable * But it is possible to reach it like: `book= Book.objects.first()` > What about its authors field: `book.authors` this will output a specification of the field as a `ManyRelatedManager` *more on that later.* \--- **<u>5. Connecting the authors to the book</u>** > Now we'll use the `.set `method to add our new authors to the book. * This method receives a list, so we'll need to create it `authors_list = [pydanny, audry]` * and then insert them `book.authors.set(authors_list)` \--- 1. **DB Verification** We can then exit the **shell**, go to the **dbshell** and verify the addition of * the authors themselves `select * from my_first_app_author` * the new list on authors on the book `select * from my_first_app_book_authors` > this will output only numbers, which are ID numbers, with the next order: *ID of the relationship | ID for which book | ID for which author.* `1|1|3` `2|1|4`
de igual manera el uso del atributo related\_name puede ser utilizado en los campos tipo Foreignkey y OneToOne y tiene la misma funcionalidad que en el ManyToMany