在 Django 教程,编写您的第一个 Django 应用程序,第 1 部分 中有这一行:
p.choice_set.create(choice='Not much', votes=0)
如何被choice_set称为存在,它是什么?
choice_set
我想这choice部分是Choice教程中使用的模型的小写版本,但什么是choice_set?你能详细说明吗?
choice
Choice
更新: 根据Ben的回答,我找到了这个文档:Following relationships “backward” 。
您创建了一个外键Choice,每个外键都与Question.
Question
因此,每个Choice显式都有一个question字段,您在模型中声明了该字段。
question
Django 的 ORMQuestion也遵循这种关系,在每个实例上自动生成一个字段,称为foo_setwhere Foois the model with a ForeignKeyfield to that model。
foo_set
Foo
ForeignKey
choice_set是一个RelatedManager可以创建Choice与实例相关的对象的查询集Question,例如q.choice_set.all()
RelatedManager
q.choice_set.all()
如果你不喜欢foo_setDjango 自动选择的命名,或者如果你对同一个模型有多个外键并且需要区分它们,你可以related_name使用ForeignKey.
related_name