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