django模型包含另一个模型的列表

时间:2013-08-24 05:05:47

标签: python django django-models

我正在尝试制作一个django模型,该模型可以将另一个模型的列表作为属性

def author:
    name = charfield...
    list_of_books = ______________

def book:
    name = charfield...

我希望作者能够拥有他所写的书籍清单。我想知道如何在作者的书籍清单中添加一本书。

我见过foreignKey,但似乎它只能容纳一个对象。

1 个答案:

答案 0 :(得分:1)

在另一个方向使用ForeignKey。 book应该包含一个ForeignKey作者,默认情况下,作者将包含成员book_set,其中包含与该作者相关的所有书籍的列表。

如果您打算让一本书能够拥有多位作者,那么ManyToManyField会更合适。

要查看特定作者的所有书籍,您需要使用author.book_set.all()

This page包含一个使用书籍,作者和出版商的数据库示例,其中作者和书籍之间的关系表示为ManyToManyField。