Нужно сделать django app, который будет реализовывать древовидное меню, соблюдая следующие условия:
- Меню реализовано через template tag
- Все, что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут.
- Хранится в БД.
- Редактируется в стандартной админке Django
- Активный пункт меню определяется исходя из URL текущей страницы
- Меню на одной странице может быть несколько. Они определяются по названию.
- При клике на меню происходит переход по заданному в нем URL. URL может быть задан как явным образом, так и через named url.
- На отрисовку каждого меню требуется ровно 1 запрос к БД
- Python
- Django
- Postgres
- Клонируйте репозиторий с GitHub и введите данные для переменных окружения:
git clone https://github.com/SemenovY/menu_tags
-
Создайте и активируйте виртуальное окружение:
- Linux/macOS
python -m venv venv && source venv/bin/activate
- Windows
python -m venv venv && source venv/Scripts/activate
-
Установите в виртуальное окружение все необходимые зависимости из requirements.txt:
python -m pip install --upgrade pip && pip install -r requirements.txt
- Выполните миграции, загрузку данных:
python manage.py makemigrations && \
python manage.py migrate && \
- Нужно создать суперпользователя и запустить сервер:
python manage.py createsuperuser && \
python manage.py runserver
Сервер запустится локально по адресу http://127.0.0.1:8000/
- Из корневой директории проекта выполните команду:
docker compose -f docker-compose.yml up -d --build
Проект будет развернут в двух docker-контейнерах (db, app) по адресу http://127.0.0.1:8000
.
- Остановить docker и удалить контейнеры, тома базы данных, статики и медиа можно командой из корневой директории проекта:
docker compose -f docker-compose.yml down -v
- Создать суперпользователя:
docker exec -it app python manage.py createsuperuser
Адреса:
- Семёнов Юрий - GitHub