因此,我在views.py中传递了一个带有目录的渲染作为参数。像这样:
def foo(request):
return render(request, 'webapp/foo.html', {'key': ['one', 'two', 'three']})
现在,我想在HTML文件中使用Jinja从目录值中获取一个元素,让我们先说。 我所知道的是如何使用for循环获取所有元素:
{% block content %}
{% for val in key %}
<p> {{ val }} </p>
{% endfor %}
{% endblock %}
我的问题是是否有类似的东西?
{% block content %}
<p> {{ key[0] }} </p>
{% endblock %}
答案 0 :(得分:3)
是。您可以在 Jinja 中使用documentation says。尽管使用不同的语法可以实现 ,但在Django模板中不支持这样的索引。您可以使用索引符号从元素访问键,因此:
{{ key[0] }}
但是实际上,在Django模板中,您还可以使用以下命令执行索引查找:
{{ key.0 }}
答案 1 :(得分:0)
你可以间接索引列表
使用split函数可以将字符串变量拆分成一个列表(它可以包含相似的值,set是为了赋值)。我在官方文档中没有找到这个函数,但它的工作原理类似于普通的 Python。这些项目可以通过索引调用,在循环中使用,或者像戴夫建议的那样,如果你知道这些值,它可以像元组一样设置变量。
{% set list1 = variable1.split(';') %} 草是 {{ list1[0] }} 船是 {{ list1[1] }} 或
{% set list1 = variable1.split(';') %}
{% for item in list1 %}
<p>{{ item }}<p/>
{% endfor %}
或
{% set item1, item2 = variable1.split(';') %}
The grass is {{ item1 }} and the boat is {{ item2 }}