Нужно сделать django app, который будет реализовывать древовидное меню, соблюдая следующие условия:
- Меню реализовано через template tag
- Все, что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут.
- Хранится в БД.
- Редактируется в стандартной админке Django
- Активный пункт меню определяется исходя из URL текущей страницы
- Меню на одной странице может быть несколько. Они определяются по названию.
- При клике на меню происходит переход по заданному в нем URL. URL может быть задан как явным образом, так и через named url.
- На отрисовку каждого меню требуется ровно 1 запрос к БД.
Нужен django-app, который позволяет вносить в БД меню (одно или несколько) через админку, и нарисовать на любой нужной странице меню по названию.
{% draw_menu 'main_menu' %}
- Перейти в папку с проектом
cd Tree-menu
- Создать виртуальное окружение
python -m venv menuvenv
- Активировать созданное виртуальное окружение:
-
menuvenv\Scripts\activate.bat
- для Windows; -
source menuvenv/bin/activate
- для Linux и MacOS.
-
- Установить Django
pip install django
- Перейти в папку, где располагается файл manage.py
cd DjangoApp
- Запустить локальный сервер Django
python manage.py runserver
- Перейти в папку с проектом
cd Tree-menu
- Собрать образ на основе Dockerfile
docker build . -t tree-menu
- Запустить контейнер
docker run -p -t 8000:8000 tree-menu
Для примера в проекте есть нужные миграции, суперпользователь и готовая стандартная база данных
Логин, пароль: admin