Reputation: 17617
I wonder if there's any way to do a while loop in django (I think that's what I'm after)?
What I'm trying to do is a nestled ul/li list.
The list is generated by a for loop in a for loop. But since some elements in the second for loop has more child's I want to iterate or them to and so on until all child nodes are iterated out. Only way I found so far is to have another for loop. But this seems not to generic and quite repetitive. And I need to know how many "levels" of child's there are.
This is what it look's like now:
<ul>
{% for item in items %}
<li>
{{ item.name }}
{% if item.childs %}
<ul>
{% for child in item.childs %}
<li>{{ child.name }}</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
Or is there a smarter way to send the data to the template? Can one do this with some kind of for/while loop?
..fredrik
Upvotes: 3
Views: 13154
Reputation: 2354
Maybe think about: https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#unordered-list ?
Upvotes: 0
Reputation: 37500
Sounds like recursion could solve your problem if you want to delve down into an 'unknown' depth of child elements? There are quite a few posts on this out on t'internet if you search...
Upvotes: 1
Reputation: 799150
Turn the list into an inclusion tag, then include it in itself.
Upvotes: 5