Вот есть у нас простой Сайт о костюмах для танцев живота:
Нам нужно, чтобы владелец сайта мог сам редактировать пункты меню через админку Django. Для этого мы используем стороннее приложение django-menu.
Так будет выглядеть интерфейс этого приложения в админке после подключения:
1. Скачать с github архив django-menu.
2. Скопировать из скачанного архива папку menu в свой проект.
3. В настройках вашего проекта settings.py:
3.1. подключить это приложение:
3.2. добавить контекстный процессор django.core.context_processors.request:
4. Создать таблицы для данного приложения, выполнив команду:
manage.py syncdb
или
manage.py migrate menu (если вы используете south)
5. Зайти в админку Django и в появившемся приложении Меню создать, к примеру, меню с названием "Главное меню", код - main_menu (см. рис. 2).
6. В шаблоне (к примеру, base.html) использовать данное приложение:
Как видно, данное приложение может определять текущий пункт меню, что позволяет нам выделять его назначением определенного класса css (в нашем примере это класс "active").
Рис. 1
Нам нужно, чтобы владелец сайта мог сам редактировать пункты меню через админку Django. Для этого мы используем стороннее приложение django-menu.
Так будет выглядеть интерфейс этого приложения в админке после подключения:
Рис. 2.
Установка приложения django-menu:
1. Скачать с github архив django-menu.
2. Скопировать из скачанного архива папку menu в свой проект.
3. В настройках вашего проекта settings.py:
3.1. подключить это приложение:
INSTALLED_APPS = (
# ...
'menu',
)
3.2. добавить контекстный процессор django.core.context_processors.request:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
# Этот контекстный процессор следует добавить:
"django.core.context_processors.request",
)
4. Создать таблицы для данного приложения, выполнив команду:
manage.py syncdb
или
manage.py migrate menu (если вы используете south)
5. Зайти в админку Django и в появившемся приложении Меню создать, к примеру, меню с названием "Главное меню", код - main_menu (см. рис. 2).
6. В шаблоне (к примеру, base.html) использовать данное приложение:
-
{% load menubuilder %}
{% menu main_menu %}
{% for item in menuitems %}
<li {% if item.current %}class="active"{% endif %}>
<a href="{{ item.url }}" title="{{ item.title|escape }}">{{ item.title }}</a>
</li>
{% endfor %}
Как видно, данное приложение может определять текущий пункт меню, что позволяет нам выделять его назначением определенного класса css (в нашем примере это класс "active").


Комментариев нет:
Отправить комментарий