Django教程:什么是choice_set?

Pet*_*sen 132 python django orm

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

p.choice_set.create(choice='Not much', votes=0)
Run Code Online (Sandbox Code Playgroud)

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

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


更新1:根据Ben James的回答,我在文档中找到了一个位置:跟随关系"向后".

Ben*_*mes 152

您创建了一个外键Choice,每个外键与a关联Question.

因此,每个Choice显式都有一个question字段,您在模型中声明了该字段.

Django的ORM如下的关系倒退的Question,并且会自动生成名为每个实例字段foo_set,其中Foo是一个模型ForeignKey域至模型.

choice_setRelatedManager可以创建ChoiceQuestion实例相关的对象的查询集的例如q.choice_set.all()

如果您不喜欢foo_setDjango自动选择的命名,或者您对同一模型有多个外键并且需要区分它们,则可以使用related_name参数to 选择自己的覆盖名称ForeignKey.

  • 没错,它是一个可以创建查询集的`RelatedManager`。 (2认同)