Вот есть у нас простой Сайт о костюмах для танцев живота:
Нам нужно, чтобы владелец сайта мог сам редактировать пункты меню через админку 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").
Комментариев нет:
Отправить комментарий