wagtailmenus - перебор элементов подменю - PullRequest
0 голосов
/ 22 апреля 2020

Я начинаю работать с трясогузкой (и Django) и использую трясогузку.

У меня проблемы с получением объекта подменю, который я (предположительно) повторяю для создания подменю, где это необходимо.

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 %}

Этот код корректно отображает элементы верхнего уровня, распознает, когда требуется подменю, и ссылается на правильный шаблон.

подменю. 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' не повторяется

Как я могу go об этом?

1 Ответ

0 голосов
/ 22 апреля 2020

Я понял это с помощью панели инструментов отладки Django.

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