wagtailmenus-迭代子菜单项

问题描述 投票:0回答:1

我正在使用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 wagtail
1个回答
1
投票

我用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 %}
© www.soinside.com 2019 - 2024. All rights reserved.