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

问题描述 投票:0回答:1

我目前(非常慢)正在研究Django文档中的Django教程和I'm up to Part Three。在第三部分中,您可以为教程中设置的民意调查构建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)中运行所有选择(选择),但为什么它正在寻找选择的价值“选择”吗?

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

    <li>{{ choice }}</li>

这是一个基本上是Pythonesque或Djangoesque的例子,我应该在继续前进之前将其包裹起来,还是只是两种选择都同样好的情况?

django
1个回答
1
投票

poll.choice_set.all()返回与Choice相关的整套Polls(通过Choice.poll ForeignKey)。 choice属性是CharField模型中的Choice,如本教程的part 1中所述。使用{{ choice }}起作用,因为Choice.__unicode__()在第1部分中被定义为返回choice字段的值。

© www.soinside.com 2019 - 2024. All rights reserved.