djangocms 3.2 уровень страницы

Я обновил приложение на базе django-cms с 2.4 до 3.2 и хочу показать подменю страницы djangocms следующим образом:

{% extends "layouts/base.html" %}
{% load cms_tags menu_tags %}

{% block 'content' %}
  {% with page_lvl=request.current_page.level %}
    {% show_sub_menu 1 page_lvl 1 'menues/cms_submenu.html' %}
  {% endwith %}
{% endblock %}

Однако current_page.level кажется None - этот код работал в 2.4, но похоже, что у страницы больше нет атрибута .level. Куда это делось?


person Mohl    schedule 11.07.2016    source источник
comment
Взгляните на docs.django- cms.org/en/release-3.3.x/how_to/ - есть даже пример модификатора уровня.   -  person ohrstrom    schedule 11.07.2016
comment
Извините, но я не понимаю. Это для сопоставления атрибута страницы с соответствующим, но более легким объектом узла - но, поскольку уровня Page.level больше нет, сопоставить нечего, или я что-то полностью пропустил?   -  person Mohl    schedule 11.07.2016


Ответы (1)


Как оказалось, DjangoCMS перешла с MPTTTree на Treebeard. В результате информация теперь хранится в атрибуте .depth вместо .level - но есть смещение по сравнению с .level, равным 1 (так .level 3 теперь .depth 4).

person Mohl    schedule 11.07.2016