2013-04-15 74 views
0

的名单有什么样:Django模板:遍历类/串

{% for class in "red", "green", "blue" %} 
    <div class="{{ class }}"></div> 
{% endfor %} 

在Django模板?

+0

如果将数组或列表从视图发送到模板,效果会更好。那么你可以用这种方式做任何你想做的事情。 – alix

+0

我不认为这会是一个好的做法。该视图不应该包含任何“显示逻辑”。这种事情应该只在模板中,或者如果不能在模板标签中显示。 – andzep

+1

重复? http://stackoverflow.com/questions/4395230/building-a-list-in-django-templates – nickromano

回答

3

嘛,不直接,但你可以使用周期与上飞的列表合并:

{% for cnt in "123"|make_list %} 
    <div class="{% cycle 'red' 'green' 'blue' %}"></div> 
{% endfor %} 

...另一种办法是给你的css_classes喜欢更通用名:color_1,color_2,color_3和然后:

{% for cnt in "123"|make_list %} 
    <div class="color_{{ cnt }}"></div> 
{% endfor %} 

这将取消夫妇从固定颜色,这也许是个好主意,如果以后改变你的CSS的颜色你的CSS类。

----更新---

好,阅读张贴nickromano链路上的答案,我现在意识到我错了。有一种使用expr来声明模板上的真实列表对象的方法。并且分割方法比make_list +循环更好:-)

+0

不错。我想''make_list'并不是真的需要。我选择了第一个建议的解决方案,而不是“123”,我选择了类的第一个字母。我现在很满意。谢谢。 – clime

+0

很高兴帮助你。但你也应该看看另一个环节。分裂方法的答案可能对未来有用。我将在下一次明确地记住这一点:-) – andzep

+0

正确的分裂方法也很酷。 – clime