Это никак не сделать встроенными средствами шаблонизатора и особенно с помощью cycle. Но легко написать для этих целей простой фильтр:
templatetags/chunkify.pyfrom django import template
register = template.Library()
@register.filter(is_safe=True)
def chunk_list(value, chunk_size=3):
for i in range(0, len(value), chunk_size):
yield value[i:i+chunk_size]
templates/chunks.html{% load chunkify %}
{% with item_list|chunk_list:3 as chunks %}
{% for chunk in chunks %}
<ul>
{% for item in chunk %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endfor %}
{% endwith %}