Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como realizar um relacionamento One-To-Many em Django?

Boa tarde, eu procurei diversas referencias em como realizar esse relacionamento, mas o unico tipo que aparece para mim é o Many-To-One, porém para o meu caso preciso que quando eu puxe uma entidade Livro por exemplo, as varias entidades Capitulos venham. Na documentação eles comentam de usar a chave estrangeira, mas seguindo esse exemplo de Livro e Capitulos, eu teria que adicionar a chave primaria de Livro como chave estrangeira de Capitulos, e quando chamo Livro nada acontece, mas quando chamo Capitulos vem junto o objeto Livro, o que eu gostaria que acontecesse é o contrario, chamar Livro e puxar uma lista de Capitulos... Alguma sugestão?

1 resposta
solução!

Seu pensamento está correto. Para fazer esse relacionamento entre livro e capítulo, em que um livro possui vários capítulos, você deve adicionar uma chave estrangeira do livro no capítulo. Para ter acesso à lista de capítulos a partir do livro, você pode usar o atributo related_name ao definir a chave estrangeira.

Exemplo:

class Livro(models.Model):
  ...

class Capitulo(models.Model):
  livro = models.ForeignKey(Livro, models.CASCADE, related_name='capitulos')

livro = Livro.objects.create()
livro.capitulos.all()

Referência: https://docs.djangoproject.com/en/3.0/topics/db/queries/#backwards-related-objects