Общий / Глобальный словарь в Django между URL-адресами и контекстным процессором - PullRequest
1 голос
/ 26 января 2012

Во время выполнения я пытаюсь создать дерево родительско-дочерних отношений между представлениями, используя urls.py различных приложений.Я пытаюсь выполнить хлебные крошки, позволяя этому дереву быть определенным расширением функции url, которая принимает дополнительные аргументы для view_name (имя для отображения на странице при использовании на странице, например, «Home») и parent_view (указывает непосредственного родителятак что вы можете создать свою крошку).

Этот класс определен в отдельном файле в своем собственном модуле utils.breadcrumbs.Класс называется BreadCrumbs, и я пытаюсь определить экземпляр BreadCrumbs в одном файле для импорта в различные файлы.Я думаю, что именно здесь он ломается.

utils / breadcrumbs.py

class BreadCrumbs:
    breadcrumbs = {} # This is our tree
    def url(self, pattern, view, arguments={}, name=None, view_name=None, parent_view=None):
        ... Adds node to self.breadcrumbs ...
        return url(pattern, view, arguments, name)

bc = BreadCrumbs()

app / urls.py

from utils.breadcrumbs import bc
urlpatterns = patterns('',
    bc.url(r'^home/$', 'app.views.home', name='home', view_name='Home'),
    bc.url(r'^subpage/$', 'app.views.subpage', view_name='Sub Page', parent_view="app.views.home"),
)

Затем я пытаюсь получить доступ к дереву, определенномув breadcrumbs.bc в контекстном процессоре, используя имя представления, данное через промежуточное ПО.Когда у меня были все шаблоны URL в основном файле urls.py, а не в отдельных приложениях, все работало нормально.Теперь, когда я переместил шаблоны URL в отдельные файлы, дерево пусто, когда я вызываю его в моем процессоре контекста, используя from utils.breadcrumbs import bc.Я неправильно использую глобальные переменные здесь?Есть ли более правильный метод для разделения переменной между моим urls.py и моим контекстным процессором?Я смотрел сеансы, но у меня нет доступа к запросу в urls.py, верно?

Ваша помощь заранее оценена.

...