@DmSS1997

Не получается сделать правильно работающий выпадающий список дерева django-mptt с помощью bootstrap. Как это можно сделать?

Нужно сделать выпадающее меню с несколькими уровнями, но у меня не получается, мало того, что список должен выпадать вправо, а он выпадает влево, так ещё выпадение работает только на 1 уровне, после второго уже нет.
При выводе с помощью обычной рекурсии всё работает правильно, вот так должно выглядеть список:
60b09d674209d996512784.png

Но когда я пытаюсь сделать его выпадающим, то если нажать на путешествия, то список выпадает, а если нажать на Европу, то уже нет. И проблема в том, что я не понимаю, как это можно сделать.
60b09de0f0bc6654531820.png

Вот так выглядит код в шаблоне:
{% load mptt_tags %}
<ul class="nav">
    {% recursetree rubrics %}
        <li class="nav-item dropright">
             <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">{{node.name}}</a>
            {% if not node.is_leaf_node %}
            <ul class="dropdown-menu">
                <li><a class="dropdown-item" href="#">{{children}}</a></li>
            </ul>
            {% endif %}
        </li>
    {% endrecursetree %}
</ul>


Вот так в модели:
class Rubric(MPTTModel):
    name = models.CharField(max_length=50, unique=True)
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('rubric', kwargs={'pk': self.pk})

    class MPTTMeta:
        order_insertion_by = ['name']


И вот так во view:
def test(request):
    return render(request, 'testapp/test.html' , {'rubrics': Rubric.objects.all()})


Но с model и view, всё хорошо. Нужна помощь именно с шаблоном
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 1
@maksam07
Для начала на чистом html сделайте имитацию генерации списка. Так будет легче тестировать где что нажимается. Когда решите все проблемы, тогда интегрируйтесь в скрипт генерации меню
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы