Django教程:什么是choice_set?

在Django教程中有这样一行, 编写你的第一个Django应用程序,第1部分

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

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

我猜想choice部分是本教程中使用的模型Choice的小写版本,但是choice_setchoice_set ? 你能详细点吗?


更新1 :根据本詹姆斯的回答,我在描述的文档中find了一个地方: 关系“落后”

您在Choice上创build了一个外键,将每个关联到一个Question

所以,每个Choice明确地有一个question字段,在模型中声明。

Django的ORM也跟从Question的关系,在每个实例上自动生成一个名为foo_set的字段,其中Foo是具有该模型的ForeignKey字段的模型。

choice_setRelatedManager ,它可以创build与Question实例相关的Choice对象的查询集,例如q.choice_set.all()

如果你不喜欢Django自动select的foo_set命名,或者如果你有多个外键给同一个模型并且需要区分它们,你可以使用ForeignKeyrelated_name参数来select你自己的覆盖名。