在Django教程中:
{% for choice in question.choice_set.all %}
Run Code Online (Sandbox Code Playgroud)
我找不到这方面的简短解释.我知道在admin.py文件中,我在选择模型上创建了一个Question模型的外键,这样每个选择都有一个问题.
wim*_*wim 15
那就是Django元类魔法!由于您具有从Choice模型到Question模型的外键,因此您将自动将模型实例上的反向关系question返回到可能的选择集.
question.choice_set.all是选项的查询集,指向您的question实例作为外键.
此反向关系的默认名称是choice_set(因为相关模型已命名Choice).但您可以通过related_name在外键上指定kwarg 来覆盖此默认名称:
class Choice(models.Model):
...
question = models.ForeignKey(Question, related_name='choices')
Run Code Online (Sandbox Code Playgroud)