我正在使用w和(和Django),并使用w尾菜单。
我无法获得我(大概)要在需要时迭代建立子菜单的子菜单对象。
main_menu.html
{% for item in menu_items %}
<li class="dropdown nav-item">
<a class="nav-link href="{{ item.href }}">{{ item.text }}</a>
{% if item.has_children_in_menu %}
{% sub_menu item %}
{% endif %}
</li>
{% endfor %}
此代码可以使顶级项目正常显示,并在需要子菜单时识别出它,并引用正确的模板。
sub_menu.html
<div class="dropdown-menu">
<a href="{{ item.href }}" class="dropdown-item">
{{ item }}
</a>
</div>
但是,item
是上一个项目-因此,我只重复了一次顶层项目。
据我所知,我需要获得子菜单的可迭代对象,并以与顶层菜单相同的方式构建它。类似,
pseudo_sub_menu.html
{% for sub_item in item %}
<a href="{{ sub_item.href }}" class="dropdown-item">
{{ sub_item.text }}
</a>
{% endfor %}
但是返回
'MainMenuItem'对象不可迭代
我该怎么办?
我用Django Debug Toolbar弄清楚了。
main_menu.html
{% if item.has_children_in_menu %}
{% sub_menu item %}
{% endif %}
sub_menu.html
{% for item in menu_items %}
<a href="{{ item.href }}" class="dropdown-item">
{{ item.text }}
</a>
{% endfor %}