Django 模板提供了用于在模板中不同点(或模板中的 for 循环)的多个值之间交替的内置标签,但是当在s 定义cycle
之外的范围内访问该标签时,该标签不会重置。cycle
即,如果您的模板中有两个或多个列表,那么您希望使用一些 css 定义的所有行odd
和even
,列表的第一行将在最后一个离开的地方,而不是新的迭代从选择 (odd
和even
)
例如,在下面的代码中,如果第一个博客有奇数个条目,那么第二个博客中的第一个条目将以 开头even
,而我希望它以 开头odd
。
{% for blog in blogs %}
{% for entry in blog.entries %}
<div class="{% cycle 'odd' 'even' %}" id="{{entry.id}}">
{{entry.text}}
</div>
{% endfor %}
{% endfor %}
我尝试通过修补resetcycle
此处提供的标签来避免这种情况:
无济于事。(代码对我不起作用。)
我也尝试将我的内部循环移动到自定义标记中,但这也不起作用,可能是因为编译/渲染循环将循环移回了外部循环?(不管为什么,它对我不起作用。)
我怎样才能完成这个简单的任务!?我不希望在我的视图中使用预编译的这些信息创建数据结构;这似乎没有必要。提前致谢。