【发布时间】:2011-11-12 01:35:54
【问题描述】:
假设我有一个对象
foo =[ob1, obj2, obj3 ... obj100 ...]
现在我想在我的模板中循环遍历它们,但以 5 个为一组,
所以每个“行”将有 5 个对象。在每一行中,我想为该行的第一个和最后一个添加一个类。
这样做有明确的原因吗?
【问题讨论】:
假设我有一个对象
foo =[ob1, obj2, obj3 ... obj100 ...]
现在我想在我的模板中循环遍历它们,但以 5 个为一组,
所以每个“行”将有 5 个对象。在每一行中,我想为该行的第一个和最后一个添加一个类。
这样做有明确的原因吗?
【问题讨论】:
django 本身已经有一个均匀和不均匀的添加模板过滤器。查看它并创建您自己的自定义过滤器..
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
register = template.Library()
@register.filter
def count_each_5th_object(value, arg):
counter = 0
for object in value:
counter += 1
if counter % arg etcetera...
但如果您纯粹出于样式原因尝试实现此结果,我建议仅使用 css...查看:first-child、nth-child(5n+5) 和 last-child
【讨论】:
你可以使用cycle标签:
<td class="{% cycle 'first' '' '' '' 'last' %}">
</td>
或:
<td{% cycle ' class="first"' '' '' '' ' class="last"' %}">
</td>
【讨论】: