2017-01-25 5 views
-1

Есть ли способ создать поле внешнего ключа, ссылающееся на несколько объектов, а не наоборот. Я хочу, чтобы автор ссылался на несколько книг, а не на несколько книг, ссылающихся на одного автора. Я знаю, что могу создать поле «много ко многим», но мне это кажется расточительным.Django true one-to-many not many-to-one

+1

Это одно ко многим, укажите отношения на авторе – Sayse

ответ

1

Сделайте это напротив.

class Author(models.Model): 

    ... 

class Book(models.Model): 
    author = models.ForeignKey('Author', related_name='books') 

Теперь вы можете получить доступ книги, написанные автором, как это:

author_object.books.all() 

, который дает вам QuerySet всех книг этого самого автора.

EDIT:

Если может быть несколько авторов одной книги и автор может написать несколько книг, то models.ManyToManyField правильный путь.

+0

Спасибо, это именно то, что мне нужно. Я забыл имя related_name в документации. – Adogyf

Смежные вопросы