一尘不染

在此Django应用程序教程中,choice_set是什么?

django

p.choice_set.create(choice='Not much', votes=0)

它是如何choice_set存在的?它是什么?

我想这choice部分是Choice本教程中使用的模型的小写版本,但是什么是choice_set?你能详细说明吗?


阅读 1154

收藏
2020-03-30

共2个答案

一尘不染

你创建了一个外键Choice,每个外键都与一个外键相关Question

因此,每个Choice显式都有一个question字段,你可以在模型中声明该字段。

Django的ORM也遵循这种关系Question,在每个实例上自动生成一个名为foo_setwhere Foo是模型的ForeignKey字段,其中包含该模型的字段。

choice_set是一个RelatedManager可以创建Choice与Question实例相关的对象的查询集的,例如q.choice_set.all()

如果你不喜欢foo_setDjango自动选择的命名方式,或者你对同一个模型拥有多个外键并且需要区分它们,则可以使用related_name参数来选择自己的替代名称ForeignKey

2020-03-30
一尘不染

我找到了此文档:遵循“向后”关系。

2020-03-30