问题描述
在关于模板的 Django 文档中,有一个 for loop tag 的例子,它迭代 athlete_list
的 trought 元素,但我找不到关于什么是 athlete_list
以及来自哪里的任何信息.我不知道是什么定义了 athlete_list
迭代器的名称。
来自文档的示例:
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
解决方法
但是我找不到关于athlete_list 是什么以及来自哪里的任何信息。
这是一个上下文变量。例如,您可以使用 render(…)
:
def my_view(request):
# …
render(request,'the-template.html',{'athlete_list': ['list','of','athletes']})
对于 ListView
,您可以通过 context_object_name
attribute [Django-doc] 设置与 QuerySet
关联的变量名称。默认情况下这是 modename_list
,所以如果模型是 Athlete
,那么它是 athlete_list
:
class AthleteListView(ListView):
model = OtherThanAthlete
context_object_name = 'athlete_list'