Portada de libro electrónico gratuitaCurso de creación de sistemas con Python y Django completo

Curso de creación de sistemas con Python y Django completo

5

(1)

176 páginas

Modelos en Django: Relaciones entre modelos

Capítulo 79

Tiempo estimado de lectura: 3 minutos

+ Ejercicio
Audio Icon

Escuchar en audio

0:00 / 0:00

Los modelos en Django son una representación de base de datos en Python. Son una forma única y poderosa de interactuar con su base de datos, utilizando un código SQL mínimo y al mismo tiempo proporcionan un alto nivel de abstracción para manipular sus datos. Uno de los aspectos más importantes de los modelos en Django es la capacidad de definir relaciones entre ellos, que se pueden utilizar para modelar casi cualquier tipo de estructura de datos que puedas imaginar.

Hay tres tipos principales de relaciones que se pueden definir entre modelos en Django: "uno a uno" (OneToOneField), "muchos a uno" (ForeignKey) y "muchos a muchos" (ManyToManyField). Cada uno de ellos tiene un propósito específico y se puede utilizar para modelar diferentes tipos de relaciones entre datos.

UnoAUnCampo

Una relación "uno a uno" se utiliza cuando un objeto está relacionado con uno y sólo otro objeto. Por ejemplo, si estamos creando un sistema para una escuela, podríamos tener un modelo para Estudiante y un modelo para Registro Académico. Cada estudiante tiene un y sólo un expediente académico, por lo que podemos usar un campo OneToOneField para representar esa relación.

clase Estudiante(modelos.Modelo):
    nombre = modelos.CharField(max_length=100)

Clase Expediente Académico(modelos.Modelo):
    estudiante = modelos.OneToOneField(Estudiante, on_delete=modelos.CASCADE)
    notas = modelos.JSONField()

Clave externa

Continúa en nuestra aplicación.

Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.

O continúa leyendo más abajo...
Download App

Descargar la aplicación

Se utiliza una relación "muchos a uno" cuando varios objetos están relacionados con un solo objeto. Por ejemplo, si estamos creando un sistema para un blog, podemos tener un modelo para una Publicación y un modelo para un Comentario. Una publicación puede tener muchos comentarios, pero cada comentario está relacionado con una y solo una publicación, por lo que podemos usar un campo ForeignKey para representar esa relación.

clase Publicación (modelos.Modelo):
    título = modelos.CharField(max_length=100)
    contenido = modelos.TextField()

comentario de clase (modelos.Modelo):
    publicación = modelos.ForeignKey (publicación, on_delete = modelos.CASCADE)
    texto = modelos.TextField()

Muchos a muchos campos

Se utiliza una relación "muchos a muchos" cuando varios objetos están relacionados con varios otros objetos. Por ejemplo, si estamos creando un sistema para una librería, podríamos tener un modelo para Libro y un modelo para Autor. Un libro puede tener varios autores y un autor puede haber escrito varios libros, por lo que podemos usar un campo ManyToManyField para representar esa relación.

clase Autor(modelos.Modelo):
    nombre = modelos.CharField(max_length=100)

Libro de clases (modelos.Modelo):
    título = modelos.CharField(max_length=100)
    autores = modelos.ManyToManyField(Autor)

Estos son sólo algunos ejemplos de cómo se pueden utilizar las relaciones de modelo en Django. La verdadera belleza de estas relaciones es que son extremadamente flexibles y pueden usarse para modelar casi cualquier tipo de estructura de datos que pueda imaginar. Además, Django proporciona una poderosa API de consulta que le permite recuperar y manipular sus datos de manera eficiente e intuitiva.

En resumen, los modelos en Django son una poderosa herramienta para modelar y manipular tus datos. Proporcionan una abstracción de alto nivel sobre SQL, lo que le permite centrarse en la lógica de su aplicación en lugar de preocuparse por los detalles de la base de datos. Las relaciones entre modelos son una parte crucial de esta abstracción y pueden usarse para modelar casi cualquier tipo de estructura de datos que puedas imaginar.

Ahora responde el ejercicio sobre el contenido:

¿Cuáles son los tres tipos principales de relaciones que se pueden definir entre modelos en Django y cuál es el propósito de cada uno?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente capítulo

Modelos en Django: Migraciones de Bases de Datos

Arrow Right Icon
Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.