Answer the question
In order to leave comments, you need to log in
How to correctly display a menu using django-mptt?
Help to form the code for the correct display of the menu.
There are 4 items (Main, Types of transportation, Companies, Contacts) menu. Item Types of transportation contains 3 sub-items (road, sea, air).
<ul class="header_ul navbar-nav mt-2 mt-lg-0">
<li class="nav-item active">
<a class="" href="">Главная</a>
</li>
<li class="nav-item dropdown">
<a class="dropdown-toggle" href="/port.html" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Типы перевозок</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Море</a>
<a class="dropdown-item" href="#">Воздух</a>
<a class="dropdown-item" href="#">Авто</a>
</div>
</li>
<li class="nav-item">
<a class="" href="/companys.html">Компании</a>
</li>
<li class="nav-item">
<a class="" href="/contact.html">Контакты</a>
</li>
</ul>
Answer the question
In order to leave comments, you need to log in
Place in the documentation:
https://django-mptt.readthedocs.io/en/latest/tutor...
An example of using it in an online store to display a drop-down product catalog:
https://github.com/ri-gilfanov/python- t/blob/maste...
If you're too lazy to read the entire template, here's a summary:
{% load static mptt_tags %}
{% recursetree category_tree %}
<li>
<a class="btn btn__light" href="{% url 'category' node.pk %}">
<span style="flex: 1 1 auto;">{{ node.name }}</span>{% if not node.is_leaf_node %}
<span> </span><span class="fa fa-angle-right"></span>{% endif %}
</a>
{% if not node.is_leaf_node %}
<ul class="site_nav_primary__submenu ul__column white_box">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
{% if not node.is_leaf_node %}
<ul class="site_nav_primary__submenu ul__column white_box">
{{ children }}
</ul>
{% endif %}
{% рекурсивное_дерево дерева_категорий %}
Открываем HTML-теги для узлов верхнего уровня
и что-то делаем с узлами верхнего уровня.
{% если узел верхнего уровня содержит дочерние узлы %}
открываем html-теги, в которые хотим завернуть дочерние узлы
{{ дети }}
закрываем html-теги
{% конец если про детей %}
Если нужно, ещё что-то делаем с узлами верхнего уровня
и закрываем HTML-теги.
{% конец рекурсивного дерева %}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question