Mat*_*Mat 3 django django-templates
我在模板中输出一系列Django对象:
{% for obj in list %}
...
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但是我只想输出前五个,然后将其余部分分开<DIV>..想法是,我可以隐藏下半部分直到需要.
我设想这样的东西,但需要限制迭代的元素:
{% for obj in list %}
...
{% endfor %}
<a href="" onclick="unhide()">Show hidden</a>
<div id="hidden">
{% for obj in list %}
...
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
是否可以单独在模板中执行此操作?它是表示逻辑,所以我宁愿不污染视图.
Pao*_*ino 16
你可以使用slice:
{% for obj in list|slice:":5" %}
...
{% endfor %}
<a href="" onclick="unhide()">Show hidden</a>
<div id="hidden">
{% for obj in list|slice:"5:" %}
...
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
如果你在视图中做了更多工作,那么在模板限制中苦苦挣扎往往表明生活可能会更简单:
context = {
'visible_list': mylist[:5],
'hidden_list': mylist[5:]
}
Run Code Online (Sandbox Code Playgroud)
我并不是说这有必要比上面的切片过滤器解决方案更好,但是通常值得考虑将模板传递给上下文对象,其中所有内容都设置得很好.如果逻辑在以后变得更复杂,它可以让您更容易适应.
表示逻辑在视图中非常好.我并不特别认为它是"污染".
| 归档时间: |
|
| 查看次数: |
2305 次 |
| 最近记录: |