我有一个名为 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">
我想做两件事:
关于如何通过django模板中的索引引用列表项有SO questions,但forms.0.as_p
不会为我呈现任何内容。另外,如何从表单(类似表单[1:])获取项目的子列表?
修改
虽然下面已经正确回答了这个问题,但我会添加另一种方法来使用切片。
<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>
答案 0 :(得分:1)
使用forloop.first
变量确定列表中的第一个表单:
{% for form in forms %}
<div class="{{ forloop.first|yesno:'image,question' }}">
{{ form.as_p }}
</div>
{% endfor %}
P.S。在这种情况下,您不需要它,但要在模板中获取子列表,您可以使用slice
模板过滤器。