Как использовать oneToMany в Django - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь добавить поле OneToMany в остальные модели django. Но Джанго не дает вариантов для этого. Может кто-нибудь предложить что-то похожее на Java @OneToMany в рамках Django

1 Ответ

0 голосов
/ 24 июня 2019

Вы можете использовать related_name в поле ForeignKey для достижения этой цели.Например, у вас есть следующие модели:

class Author(models.Model):
    name = models.CharField(max_length=128)


class Book(models.Model):
    name = models.CharField(max_length=128)
    author = models.ForeignKey(Author, related_name='books', on_delete=models.CASCADE)

Теперь для доступа ко всем книгам автора запрос будет Author.books.all().Обратите внимание, что модель Author не имеет атрибута books.Но в author поле ForeignKey (которое ссылается на модель Author) модели Book имеет аргумент related_name и его значение равно books .Это означает, что книги автора можно получить по модели Author.Django прекрасно с этим справляется.

Кроме того, вы можете использовать select_related для оптимизации (в этом случае вам не нужно использовать аргумент related_name): Book.objects.all().select_related('author')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...