在Django民意调查教程的“ forquestion.choice_set.all”中,choice是什么意思?

时间:2019-02-12 06:06:07

标签: python django

我是Django的新手,正在研究第一个民意测验教程。我在理解本教程的for循环中使用“选择”一词时遇到了麻烦。

我已经阅读了与本教程有关的其他问题,但是大多数问题都与choice_set.all有关。

{% for choice in question.choice_set.all %}
    <li>{{ choice.choice_text }}</li>
{% endfor %}

我的问题与for语句中...的“选择”的最初使用有关。

似乎引用了我不太了解的整个Choice模型。似乎在说“ for choice.choice_text in”时循环遍历对问题.choice_set.all中的值的choice_text匹配似乎更有意义。

在本教程的这一点上,Choice模型包含choice_text,问题和投票。

有人可以帮助我了解for循环中对选择的初次提及吗?

2 个答案:

答案 0 :(得分:3)

question.choice_set.all是一个可迭代项,例如列表或集合,而choice是您正在对其进行操作的可迭代项中的当前项目,它可以使用保留字以外的任何其他名称但是由于这是用户在进行选择的项目,因此作者决定将其称为选择而不是ifred会更清楚,但几乎所有方法都会起作用。

一旦有了您的物品,就可以进入它的结构。

答案 1 :(得分:1)

只需添加到史蒂夫·巴恩斯(Steve Barnes)的answer:您确实可以使用任何单词代替choice,但必须确保在其他地方使用相同的单词。例如:

{% for baseball in question.choice_set.all %}
    <li>{{ baseball.choice_text }}</li>
{% endfor %}