css - Django 模板 : Group items in Threes

标签 css django templates

我对 Django 有一个奇怪的问题。我有一组对象,我会像往常一样在模板中循环。但是,我需要将元素分成三组。页面布局如下:

绘画 1 - 绘画 2 - 绘画 3

D E S C R I P T I O N 1
D E S C R I P T I O N 2
D E S C R I P T I O N 3

绘画 4 - 绘画 - 5 绘画 6

D E S C R I P T I O N 4
D E S C R I P T I O N 5
D E S C R I P T I O N 6

等等等等

我实在想不出最好的一组 Django 标签来真正做到这一点。似乎有些棘手。 {% cycle %} 语句没有多大帮助。

当然,除非我做了一些 Java 脚本黑客攻击而将 Django 排除在外?必须有某种说法“将所有描述 div 一个接一个地放在一起”或类似的说法。不确定如何最好地处理此排序。有什么想法吗?干杯。

最佳答案

您可以为此使用一个简单的过滤器:

import itertools

from django import template

register = template.Library()

@register.filter
def chunks(value, chunk_length):
    """
    Breaks a list up into a list of lists of size <chunk_length>
    """
    clen = int(chunk_length)
    i = iter(value)
    while True:
        chunk = list(itertools.islice(i, clen))
        if chunk:
            yield chunk
        else:
            break

然后在你的模板中:

{% for chunk in paintings|chunks:3 %}
  <div class="row">
    {% for painting in chunk %}
      <div>{{ painting }}</div>
    {% endfor %}
  </div>
{% endfor %}

关于css - Django 模板 : Group items in Threes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/845227/

相关文章:

html - 在同一行 Bootstrap 中设置不同宽度的列

javascript - 住每个jquery?

javascript - 在 Django 中实时编辑

django - 如何在 Django-Registration 表单中添加占位符

c++ - CPP 元编程 : contains function for tuples

javascript - 反向灯箱效果

css - 使用 ie7 将 child 漂浮在溢出的 parent 中

python - 使用 django-crispy 组合布局时出错

Javascript 模板引擎。使用理由

java - 速度:使用分隔符/前缀连接可选字段