按索引 Django 模板引用列表项
Reference list items by index Django template
我有一个名为 forms 的列表,我正在将其传递给 Django (1.5.1) 模板:
<div class="content">
{% if forms %}
<form method="POST" enctype="multipart/form-data" class="survey">
<div class="image">
{{ forms.0.as_p }}
</div>
<div class="questions">
{% for form in forms %}
{{ form.as_p }}
</div>
{% endfor %}
<input type="submit" value="Submit Survey"/>
</form>
{% endif %}
<div class="content">
我想做两件事:
- 将 forms 列表的第一个元素放入带有 class="image".
的 div 标签中
- 将其余元素放在 div 标签内 class="questions"
有 SO questions 关于如何在 django 模板中通过索引引用列表项,但 forms.0.as_p
没有为我呈现任何内容。此外,如何从 forms(类似于 forms[1:])中获取项目的子列表?
编辑
虽然问题已在下面得到正确回答,但我将添加另一种使用 slice 的方法。
<form method="POST" enctype="multipart/form-data" class="survey">
<div class="image">
{{ forms.0.as_p }}
</div>
<div class="questions">
{% with myforms=forms|slice:"1:"%}
{% for form in myforms %}
{{ form.as_p }}
{% endfor %}
{% endwith %}
</div>
使用forloop.first
变量确定列表中的第一个表格:
{% for form in forms %}
<div class="{{ forloop.first|yesno:'image,question' }}">
{{ form.as_p }}
</div>
{% endfor %}
P.S。在这种情况下您不需要它,但要在模板中获取子列表,您可以使用 slice
模板过滤器。
我有一个名为 forms 的列表,我正在将其传递给 Django (1.5.1) 模板:
<div class="content">
{% if forms %}
<form method="POST" enctype="multipart/form-data" class="survey">
<div class="image">
{{ forms.0.as_p }}
</div>
<div class="questions">
{% for form in forms %}
{{ form.as_p }}
</div>
{% endfor %}
<input type="submit" value="Submit Survey"/>
</form>
{% endif %}
<div class="content">
我想做两件事:
- 将 forms 列表的第一个元素放入带有 class="image". 的 div 标签中
- 将其余元素放在 div 标签内 class="questions"
有 SO questions 关于如何在 django 模板中通过索引引用列表项,但 forms.0.as_p
没有为我呈现任何内容。此外,如何从 forms(类似于 forms[1:])中获取项目的子列表?
编辑
虽然问题已在下面得到正确回答,但我将添加另一种使用 slice 的方法。
<form method="POST" enctype="multipart/form-data" class="survey">
<div class="image">
{{ forms.0.as_p }}
</div>
<div class="questions">
{% with myforms=forms|slice:"1:"%}
{% for form in myforms %}
{{ form.as_p }}
{% endfor %}
{% endwith %}
</div>
使用forloop.first
变量确定列表中的第一个表格:
{% for form in forms %}
<div class="{{ forloop.first|yesno:'image,question' }}">
{{ form.as_p }}
</div>
{% endfor %}
P.S。在这种情况下您不需要它,但要在模板中获取子列表,您可以使用 slice
模板过滤器。