Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Exception при вложенных меню #40

Closed
Uznick opened this Issue · 8 comments

2 participants

Pavel Shvedov Igor Starikov
Pavel Shvedov

Есть проблема:
Структура:
index.html:
{% sitetree_menu from "main_menu" include "trunk" template "sitetree/top_menu.html" %} -- главное меню
sitetree/top_menu.html:
{% sitetree_children of item for menu template "sitetree/top_child.html" %}
sitetree/top_child.html:
{% sitetree_menu from "main_menu" include "this-siblings" template "sitetree/secondlevel_menu.html" %}

На выходе получаем:
Caught SiteTreeError while rendering: Sitetree needs "django.core.context_processors.request" to be in TEMPLATE_CONTEXT_PROCESSORS in your settings file. If it is, check that your view pushes request data into the template.

Похоже, что при такой вложенности в последнее меню не проваливается контекст :(

Igor Starikov
Owner

Возможно и не проваливается %)
Какой функциональности хотите достичь такой вложенностью?

Pavel Shvedov

Древовидное меню:

<div class="mainNavigation">
    <ul class="firstLevel">
        <li class="current first">
            <a href="#">О компании</a>
            <div class="subNavigation">
                <ul class="secondLevel">
                    <li class="current"><span>Услуги</span></li>
                    <li><a href="#">Новости</a></li>
                    <li><a href="#">Статьи</a></li>
                </ul>
            </div>
        </li>
        <li class="second"><a href="#">Пункт 2</a></li>
        <li class="third"><a href="#">Пункт 3</a></li>
        <li class="fourth"><a href="#">П4</a></li>
    </ul>
</div>

Рендерится меню структуры

"Корень"
    "О компании"
        "Услуги"
        "Новости"
    "Пункт 2"
    "Пункт 3"
    "Пункт 4"

Соответственно, на странице "Услуги" рендерится меню вышепоказанной структуры :)

Igor Starikov
Owner

Я, похоже, чего-то не уловил: если на странице "Услуги" должна выводится та же структура, что и на прочих, то зачем плясать с "this-siblings"?

По задумке "sitetree_children" должен рекурсивно вызывать один и тот же шаблон, отрисовывая всё новых детей (как в шаблонах из комплекта). Таким образом, добро типа

{% sitetree_menu from "main_menu" include "this-siblings" template "sitetree/secondlevel_menu.html" %}

имеет смысл пихать не внутрь шаблонов sitetree, а на то место на странице, где нужно вывести эту часть меню.

Pavel Shvedov

На странице "услуги" выводится дерево 2 уровня + дерево 3 детей "О компании"
У пунктов 2,3,4 есть свои подпункты.

Поэтому в каждый момент времени должно выходить полностью всё дерево меню 2 уровня с одной развернутой веткой текущего раздела, поэтому кроме как внутрь sitetree я не нашел куда это запихать, чтобы оно кошерно отрендерилось средствами sitetree же :)

Igor Starikov
Owner

Эвона, понял. Спасибо. Вечерком подумаю как обойти.

Igor Starikov
Owner

Контекст проброшен, можно пробовать.

Pavel Shvedov

Похоже, всё отлично. Спасибо за оперативность! :)

Pavel Shiryaev pws21 referenced this issue from a commit in pws21/django-sitetree
Igor Starikov Global template context is now passed down all sitetree-related templ…
…ates (see #39, see #40).
6a4643e
Volodymyr Tartynskyi vosi referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
Igor Starikov
Owner

Ну, раз работает, то закрываю.

Igor Starikov idlesign closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.