Нужно сделать Django арр, который будет реализовывать древовидное меню, соблюдая следующие условия:
-
Меню реализовано через template tag;
-
Все что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут;
-
Хранится в БД;
-
Редактируется в стандартной админке Django;
-
Активный пункт меню определяется исходя из URL текущей страницы;
-
Меню на одной странице может быть несколько, они определяются по названию;
-
При клике на меню происходит переход по заданному в нем URL. Он может быть задан как явным образом, таки через named URL;
-
На отрисовку каждого меню требуется ровно 1 запрос к БД;
Нужен Django-арр, который позволяет вносить в БД меню (одно или несколько) через админку, и нарисовать на любой нужной странице меню по названию.
{% draw_menu 'main_menu' %}
При выполнении задания из библиотек следует использовать только Django и стандартную библиотеку Python.
На отрисовку каждого меню требуется 1 SQL запрос
Через URL определяется активный пункт меню, все что над пунктом развернуто. первый уровень вложенности под ним тоже развернут
Создать меню и его категории можно в админке, сначала нужно создать меню, а потом категории, при создании категорий указывается к какому меню она будет принадлежать, а также, есть ли у нее родительская категория(если не ставить, то будет родительской категорией)
git-clone https://github.com/artklk12/uptrader_testcase.git ./manage.py runserver
Мне сказали изобрести костыль, используя только библиотеки Django и python, в целом код не пройдёт код-ревью получился вменяемый, но для
создания вложенного меню в обычной ситуации я бы использовал сторонние библиотеки, например mptt