sin*_*wav 8 tags django templates twitter-bootstrap
所以这是我的问题:我有一堆类的实例.我想有一个这些实例对象的表,所以每行最多有六个.在bootstrap术语中,我希望每个对象由类"span2"的"div"中的缩略图表示.
我最初的冲动是使用嵌套的for循环,但是我在模板中操作索引变量时遇到了麻烦,我无法弄清楚如何在模板之外这样做.
这里通常是python/django模板/伪代码我想弄清楚的.
queryset = Class.objects.all()
set_length = queryset.count()
num_rows = set_length/6
#because I want 6 columns in each row, each with one instance
set_as_list = list(queryset)
# have a list so I can iterate through objects by index
for i in range(table_rows):
# make a row
<div class="row">
for j in range (i*6,(i+1)*6):
#make six or less columns
<div class="span2">
<p>set_as_list[j].attribute1</p>
<p>set_as_list[j].attribute2</p>
</div>
</div> # end row
Run Code Online (Sandbox Code Playgroud)
我希望django模板语言,python和html的公然混合不会冒犯任何人.只是想表达我想要做的事情的想法.我很感激有人愿意提供任何帮助,因为我已经在这方面苦苦挣扎了好几天,并且在模板和外部都做了很多寻求解决方案.
我也意识到在整数除法之后需要与剩余的对象进行最后一行.
小智 46
没有时间解释,但我有类似的问题,直到我关闭这个浏览器页面这里是一个解决方案
{% for sub_article in articles %}
{% if forloop.first %}<div class="row">{% endif %}
<div class="col-xs-4">
<a href="#">
{{ sub_article.name }}
</a>
</div>
{% if forloop.counter|divisibleby:3 %}</div><div class="row">{% endif %}
{% if forloop.last %}</div>{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以使代码更通用一些。逻辑如下:
queryset = Class.objects.all()
set_length = queryset.count()
<div class="row">
{% for i in queryset %}
<div class="span2">
<p>i.attr</p>
<p>i.attr</p>
</div>
{% if forloop.counter|divisibleby:"6" or forloop.last %}
</div> <!--end row-->
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我希望这能解决您的问题:-)
| 归档时间: |
|
| 查看次数: |
10349 次 |
| 最近记录: |