Django while loop

心不动则不痛 提交于 2019-12-05 02:59:31

问题


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:


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




回答2:


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




回答3:


Maybe think about: https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#unordered-list ?



来源:https://stackoverflow.com/questions/2408854/django-while-loop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!