为什么Django教程在detail.html中使用choice.choice作为变量?

为什么Django教程在detail.html中使用choice.choice作为变量?,django,Django,我目前正在(非常缓慢地)学习Django文档中的Django教程,以及。在第三部分中,将为教程中设置的轮询构建detail.html视图 我或多或少都在关注这一点,但detail.html代码中的这一点让我感到困惑: <h1>{{ poll.question }}</h1> <ul> {% for choice in poll.choice_set.all %} <li>{{ choice.choice }}</li> {% e

我目前正在(非常缓慢地)学习Django文档中的Django教程,以及。在第三部分中,将为教程中设置的轮询构建detail.html视图

我或多或少都在关注这一点,但detail.html代码中的这一点让我感到困惑:

<h1>{{ poll.question }}</h1>
<ul>
{% for choice in poll.choice_set.all %}
    <li>{{ choice.choice }}</li>
{% endfor %}
</ul>
{{poll.question}
    {poll.choice_set.all%}
  • {{choice.choice}
  • {%endfor%}
我知道,首先它显示民意测验的“问题”部分(poll.question),然后它运行该民意测验的选项集中的所有选项(choice)(poll.choice_set.all),但为什么它要寻找选项的值“choice”

如果我将detail.html更改为仅包含以下内容,它仍然有效:

    <li>{{ choice }}</li>
  • {{choice}
  • 这是一个从根本上说是Pythonesque或djangosque的例子,我应该在继续前进之前先把脑袋绕过去,还是这只是一个两种选择都同样好的情况

    poll.choice\u set.all()
    返回与
    poll
    关联的整个
    choice
    集合(通过
    choice.poll
    ForeignKey
    )。
    choice
    属性是
    choice
    模型中的
    CharField
    ,如本教程第1部分所述。使用
    {{choice}
    是因为
    choice.\uuuu unicode\uuuu()
    在第1部分中定义为返回
    choice
    字段的值