这是我的views.py:
a=['aaa','bbb','oooo','qqqq','gggg']
def main(request, template_name='index.html'):
context ={
'n':range(len(a)),
'a':a,
}
return render_to_response(template_name, context)
这是我的HTML:
{% for i in n %}
{{a.i}} ww {{a.i+1}}
{% endfor %}
显示ww ww ww ww ww
,
但我想展示'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'
所以我该怎么做,
感谢
答案 0 :(得分:1)
>>> c=Context({'a':['aaa', 'bbb', 'oooo', 'qqqq', 'gggg']})
>>> Template("{% for x in a %}{% if not forloop.first %}{{ x }} {% endif %}{{ x }}ww{% endfor %}").render(c)
u'aaawwbbb bbbwwoooo oooowwqqqq qqqqwwgggg ggggww'
答案 1 :(得分:0)
不要那样做。直接在列表上迭代。
context = {
'a': a
}
return render_to_response(template_name, context)
在模板中:
{% for x in a %}
{{ x }}
{% endfor %}
答案 2 :(得分:0)
您可以创建自定义过滤器http://docs.djangoproject.com/en/1.2/howto/custom-template-tags/并具有以下内容:
# myfilters.py
def return_element(list, index):
return list[index+1]
然后你可以在模板中使用它,
{% include myfilters %}
...
{% for i in a %}
{{ i }}ww{{ a|return_element:forloop.counter0 }}
{% endfor %}
forloop模板变量在for标签内自动设置.forloop.counter0返回循环输入的次数,并使用零索引。