Во время выполнения я пытаюсь создать дерево родительско-дочерних отношений между представлениями, используя 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, верно?
Ваша помощь заранее оценена.