我想在django应用程序中包含n次(我是新来的/学习django)。我在rails中更有经验,我只想写:
<% 3.times do %>
render 'feeds/feature'
<% end %>
我想知道如何在django中做类似的事情。以下是我的想法:
{% i = 1%}
{% for i =< 9 %}
{% include 'feeds/feature.html'%}
{% i += 1%}
{% end %}
然而,这不起作用 - 我得到模板语法错误无效的块标记:'i',预期'endblock'
我可以像在rails中一样将python嵌入到django页面中吗?而且,更重要的是,我如何在django中包含feature.html页面n(或在本例中为9)次?
答案 0 :(得分:2)
只需将范围放在视图的上下文中,然后:
在视图中:
render_to_response('foo.html', {..., 'range': range(9), ...}, ...)
在模板中:
{% for i in range %}
{% include 'feeds/feature.html'%}
{% endfor %}
你也可以这样做:
{% for i in "123456789" %}
{% include 'feeds/feature.html'%}
{% endfor %}
是的,非常难看。
或者您可以定义模板标记:
答案 1 :(得分:0)
也许我错过了一些东西,但我无法想象我会以这种方式需要它。如果您有来自数据库的功能列表并希望显示其中的一些特定数量,则可以通过以下方式执行此操作:
{% for feature in feature_list|slice:":3" %}
{% include "template.html" %}
{% endfor %}
或者简单地在下面写三个包含。但正如我所说,这不是一种常见的编程模式,可以有更好的解决方案。