• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

569
Views
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

about 3 years ago · Santiago Trujillo
1 answers
Answer question

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()
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error