views:

199

answers:

2
+1  Q: 

Django while loop

Hi,

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

+1  A: 

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...

Jon Cage
+2  A: 

Turn the list into an inclusion tag, then include it in itself.

Ignacio Vazquez-Abrams
Used this with great success, thanks!
fredrik