Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2014 20:49:59

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

django-cms: меню отдельной страницы

подскажите пожалуйста как на django-cms делается меню отдельной страницы

например существует основное меню:

  • -главная
    -блог
    -контакты
    -карта

мне нужно чтобы когда пользователь находился на странице “блог”, в левой колонке появлялось дополнительное меню, состоящее из:
  • -блог1
    -блог2
    -блог3

но на остальных страницах этого меню не было.

я сделал 2 шаблона: одноколоночный и двухколоночный. назначил двухколоночный шаблон для страницы “блог”. проблема в том, что не понимаю как привязать дополнительное меню

например в других cms обычно есть возможность создать несколько меню через админку. в django-cms какой-то другой подход к построению системы меню

Офлайн

#2 Окт. 28, 2014 06:42:25

N..E.M
Зарегистрирован: 2014-10-15
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

django-cms: меню отдельной страницы

В django-cms есть одно дерево меню.
Что такое “блог 1/2/3”? Это разделы блога, которые не являются отдельными страницами, а генерируются из соответствующей модели? Тогда вам нужно сделать меню приложения и привязать его к странице. В документации об этом есть, ищите класс CMSAttachMenu, в его методе get_nodes() можно выбрать разделы блога из соответствующей модели и создать пункты меню. Что-то типа такого:

class BlogMenu(CMSAttachMenu):
    name = _("Blog Menu")
    def get_nodes(self, request):
        nodes = []
        for section in BlogSection.objects.all():
            nodes.append(NavigationNode(
                section.name,
                reverse('blog:section', args=(section.pk,)),
                section.pk
            ))
        return nodes

На другие cms в данном вопросе не ориентируйтесь. Несколько меню здесь не то чтобы невозможно, но просто не делаются так, как в “других cms”.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version