【问题标题】:django models that contains list of another model包含另一个模型列表的 django 模型
【发布时间】:2013-08-27 05:32:51
【问题描述】:

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

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

def book:
    name = charfield...

我希望作者能够拥有他所写书籍的列表。我想知道如何将一本书添加到作者的书籍列表中。

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

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

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

    如果您希望一本书能够拥有多个作者,ManyToManyField 会更合适。

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

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

    【讨论】:

    • 假设我想迭代并打印出作者写的所有书籍,我该怎么做?
    • list_of_booKs = author.book_set.all();对于 list_of_books 中的书:打印书
    • 这确实意味着一本书只能有一个作者。也许在这里使用 ManyToManyField 会更好?
    • @Ben True,尽管这是我按照预期阅读问题陈述的方式。不过,您说的很对,所以我会修改我的答案以包括在内。
    • @Jon 指向 Django 书籍的绝佳链接 - 我知道我在某处看到过关于书籍和作者的教程!
    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2020-09-06
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多