Skip to content

Nekttuman/DjangoMenuTag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DjangoMenuTag

Меню, реализованное через template tag. Хранится в БД, активный пункт меню определяется из текущего url.

To run the project:

git clone https://github.com/Nekttuman/DjangoMenuTag.git
cd .\DjangoMenuTag\
python -m venv env
.\env\Scripts\activate.bat
pip install -r requirements.txt 
python manage.py runserver

Open localhost: http://127.0.0.1:8000/

Task

Нужно сделать django app, который будет реализовывать древовидное меню, соблюдая следующие условия:

  1. Меню реализовано через template tag
  2. Все, что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут.
  3. Хранится в БД.
  4. Редактируется в стандартной админке Django
  5. Активный пункт меню определяется исходя из URL текущей страницы 6 )Меню на одной странице может быть несколько. Они определяются по названию.
  6. При клике на меню происходит переход по заданному в нем URL. URL может быть задан как явным образом, так и через named url. 8)На отрисовку каждого меню требуется ровно 1 запрос к БД

Нужен django-app, который позволяет вносить в БД меню (одно или несколько) через админку, и нарисовать на любой нужной странице меню по названию.

{% draw_menu 'main_menu' %}

При выполнении задания из библиотек следует использовать только Django и стандартную библиотеку Python.

Описание решения

Меню хранятся в модели Menu items. Добавление нового элемента в меню: image

Поскольку запрос к Бд дожен быть единственным при отрисовке меню, в draw_menu, фала menu_tags.py используем:

menu_items = MenuItem.objects.filter(menu_name=menu_name).prefetch_related('children')

Выбран пункт меню "Услуги" image

Выбран пункт меню "Модбильные приложения" image

Выбран пункт меню "1.1 Definition of Concepts" image

About

Меню, реализованное через template tag. Хранится в БД, активный пункт меню определяется из текущего url.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors