我目前(非常慢)正在研究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的例子,我应该在继续前进之前将其包裹起来,还是只是两种选择都同样好的情况?
poll.choice_set.all()
返回与Choice
相关的整套Poll
s(通过Choice.poll
ForeignKey
)。 choice
属性是CharField
模型中的Choice
,如本教程的part 1中所述。使用{{ choice }}
起作用,因为Choice.__unicode__()
在第1部分中被定义为返回choice
字段的值。