Я начинаю работать с трясогузкой (и Django) и использую wagtailmenus.
У меня возникли проблемы с получением объекта подменю, который я (предположительно) повторяю для создания подменю там, где это необходимо.
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
является предыдущим элементом, поэтому я просто повторяю элемент верхнего уровня один раз.
Насколько я понимаю, мне нужно получить итерируемый объект подменю и построить его так же, как меню верхнего уровня. Что-то типа,
псевдо_под_меню.html
{% for sub_item in item %}
<a href="{{ sub_item.href }}" class="dropdown-item">
{{ sub_item.text }}
</a>
{% endfor %}
Но это возвращается
Объект MainMenuItem не повторяется
Как я могу это сделать?
1 ответ
Я понял это с помощью панели инструментов Django Debug.
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 %}
Похожие вопросы
Новые вопросы
django
Django - это серверная платформа веб-приложений с открытым исходным кодом, написанная на Python. Он разработан для сокращения усилий, необходимых для создания сложных веб-сайтов и веб-приложений, управляемых данными, с особым упором на меньшее количество кода, отсутствие избыточности и более явное, чем неявное.