Описание
Это Django-приложение, которое генерирует "Хлебные крошки"(breadcrumbs) той страницы, на которой оно установленно. Из-за особенности устройства Django-фреймворка, вся генерация происходит на сервере, то есть SSR-метод рендеринга.
Установка и настройка
Чтобы установить данный пакет можно скачать с этого сайта исходники или через PyPi:
После установки нужно подключить приложение и соответствующий мидлвари в settings.py:
И теперь, чтобы данное приложение смогло найти страницы на которые нужно будет добавить "хлебные крошки", твои представления должны будут возвращать TemplateResponse объект. Например, у меня есть стандартное представление статей, которое возвращает HttpResponse используя шорткат функцию render:
Вместо функции render, нужно подставить TemplateResponse. Вот так:
С настройкой и установкой необходимого django-приложения мы закончили. Теперь о том как и куда вставлять шаблон для хлебных крошек.
Как использовать
Для того чтобы использовать данное приложение, необходимо вставить соответствующий блок шаблона там, где бы ты хотел видеть хлебные крошки. Вот этот блок:
Как ты можешь видеть, приложение определяет переменную isBreadcrumbsMiddlewareConnected с той целью, чтобы знать подключено ли приложение или нет. Дальше есть следующие переменный которые ты можешь отправить на рендеринг на сервер:
- separator - какой символ будет отделять каждый из элементов пути
- first_separator - это самый первый символ, который будет перед первым элементом
- last_separator - это самый последний символ, который будет после последнего элемента
- custom_urls - ещё одна переменная, это список адресов, который бы ты хотел отрендерить вместо сгенерированного
Это будет выглядеть, как-то так:

Так же для дополнительной стилизации хлебных крошек я определил несколько CSS-классов:
- breadcrumbs-container - для всего контейнера
- breadcrumbs-separator-first - для первого сепаратора
- breadcrumbs-separator - для всех сепараторов
- breadcrumbs-separator-last - для последнего сепаратора
Как это работает
Большинство django-приложений, которые имплементируют элемент хлебных крошек, делают его через передачу списка элементов в самих представлениях. Моё приложение работает по другому принципу.
Источником для элементов хлебных крошек служит пара ключ-значение HTTP_REFERER в словаре META в самом запросе:
После того как был получен ссылающийся URL, он обрабатывается и возвращается в специальные шаблоны для отрисовки. Хочу заметить, что из-за особенностей источника адреса, то есть HTTP_REFERER, если зайти на страницу через поиск гугл или на прямую, вбив адрес в поисковую строку, никаких хлебных крошек не получится.
Вот как выглядят шаблоны для отрисовки хлебных крошек, breadcrumbs.html:
А это непосредственно, breadcrumbs-items.html:
Отзывы
(0)