django 1.10循环每4个元素添加hr标签
Posted
技术标签:
【中文标题】django 1.10循环每4个元素添加hr标签【英文标题】:django 1.10 cycle to add hr tag every 4th element 【发布时间】:2017-02-12 17:08:13 【问题描述】:我想在我的 html 文档中每隔 4 个子元素添加一个 hr 元素。这是我目前所拥有的:
<div class="row blog-post">
% for obj in object_list %
<div class="col-sm-3">
<div class="thumbnail">
% if obj.image %
<img src=" obj.image.url " class="img-responsive"/>
% endif %
<div class="caption post-detail-item">
% if obj.draft %<h3>Staff only: <span style="color:red;">Draft</span></h3> % endif % % if obj.publish > today %<h3>Staff only: <span style="color:red;">Future Post</span></h3>% endif %
<h3><a href=' obj.get_absolute_url '> obj.title </a><small> obj.publish|timesince </small></h3>
% if obj.user.get_full_name %
<p>Author: obj.user.get_full_name </p>
% endif %
obj.get_markdown|truncatechars_html:350
<p><a href=" obj.get_absolute_url " class="btn btn-primary" type="button">View</a></p>
</div>
</div>
</div>
% cycle "" "<div class='col-sm-12'><hr/></div></div><div></div><div class='row'>" %
% endfor %
</div>
我在那里的循环位可以分隔每个第二个元素,但我希望它是每 4 个。没有它,我每行有 4 个元素。这就是我要的。基本上,我试图为每列设置一个标准高度。
【问题讨论】:
【参考方案1】:% if forloop.counter0|divisibleby:4 %
<div class='col-sm-12'><hr/></div></div><div></div><div class='row'>
% endif %
更多关于divisibleby的信息:https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#divisibleby
【讨论】:
【参考方案2】:您可以将两个以上的参数传递给循环标签。例如:
% cycle "" "" "" "<div..." %
按照 1GDST 的建议,使用 divisibleby
可能更整洁,我只是添加这个答案作为替代。
【讨论】:
以上是关于django 1.10循环每4个元素添加hr标签的主要内容,如果未能解决你的问题,请参考以下文章
Django 1.10 模板在其父级之外呈现嵌套的 HTML 标签