Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

664
Vistas
Django: relación de uno a muchos

Tengo una pregunta sobre el modelado de objetos. Digamos que tenemos una relación de uno a muchos en la que una instancia del objeto A podría tener de 0 a muchos objetos B vinculados, mientras que el objeto B podría estar vinculado a uno y solo un objeto A (tenga en cuenta que el objeto B no se puede crear sin estar vinculado a un objeto B ). Hasta ahora, he agregado una clave externa al modelo del objeto B, al agregar ese objeto, debo seleccionar un Objeto A, hasta ahora todo bien. Mi pregunta ahora es ¿tengo que agregar también el objeto B al modelo del objeto A en el nivel de la base de datos? ¿O debería simplemente hacerlo en el nivel de API creando API anidadas? Entonces, obtener el objeto B sería de esta manera:

 get : http://localhost/api/objectA/objectB

Espero haber sido claro al explicar mi pregunta, pero para resumir, no estoy seguro de si agregar una clave externa para representar a: 0.n---->1.1 es suficiente.

Hace mucho tiempo que no diseñaba una base de datos ¿estoy usando una metodología muy antigua?

Gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mi pregunta ahora es ¿tengo que agregar también el objeto B al modelo del objeto A en el nivel de la base de datos?

no Si construyó una relación como ForeignKey , puede dejar que Django consulte a la inversa. Así que si tienes dos modelos:

 class A (models.Model): pass class B(models.Model): a = models.ForeignKey(A, on_delete=models.CASCADE)

Entonces puedes obtener todos los objetos B que pertenecen a algún objeto A somea con:

 somea .b_set.all()

Puede cambiar el nombre de la relación a la inversa configurando el parámetro related_name=… [Django-doc] . Entonces puedes especificar la relación como:

 class A(models.Model): pass class B(models.Model): a = models.ForeignKey( A, related_name='bs' , on_delete=models.CASCADE )

y luego consulta con:

 somea .bs .all()
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda