p.choice_set.create(choice='Not much', votes=0)
它是如何choice_set存在的?它是什么?
choice_set
我想这choice部分是Choice本教程中使用的模型的小写版本,但是什么是choice_set?你能详细说明吗?
choice
Choice
你创建了一个外键Choice,每个外键都与一个外键相关Question。
Question
因此,每个Choice显式都有一个question字段,你可以在模型中声明该字段。
question
Django的ORM也遵循这种关系Question,在每个实例上自动生成一个名为foo_setwhere Foo是模型的ForeignKey字段,其中包含该模型的字段。
foo_setwhere Foo
ForeignKey
choice_set是一个RelatedManager可以创建Choice与Question实例相关的对象的查询集的,例如q.choice_set.all()
RelatedManager
Choice与Question
q.choice_set.all()
如果你不喜欢foo_setDjango自动选择的命名方式,或者你对同一个模型拥有多个外键并且需要区分它们,则可以使用related_name参数来选择自己的替代名称ForeignKey。
foo_set
related_name
我找到了此文档:遵循“向后”关系。