微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么定义了 for 循环模板标签中的迭代器名称?

如何解决什么定义了 for 循环模板标签中的迭代器名称?

在关于模板的 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'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。