Передача объекта на каждой странице Django - PullRequest
2 голосов
/ 23 сентября 2011

У меня есть объект с именем Groups, который используется на каждой странице моего сайта.Тем не менее, Django передает только объекты Python в html через render_to_response, и я не могу обработать ответ каждый раз, когда что-то происходит с объектом groups.

Как мне поддерживать этот объект (как, например, он реагирует на добавлениеи удаление) и произвести его в каждом шаблоне Django, который у меня есть, без вызова render_to_response?

Ответы [ 3 ]

5 голосов
/ 23 сентября 2011

запишите шаблонный процессор контекста :

#my_context_processors.py

def include_groups(request):
    #perform your logic to create your list of groups
    groups = []
    return {'groups':groups}

и добавьте его в файл настроек:

#settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
     "django.core.context_processors.auth",
     "django.core.context_processors.debug",
     "django.core.context_processors.i18n",
     "django.core.context_processors.media",
     "path.to.my_context_processors.include_groups",
)

теперь будет доступна переменная groupsвам во всех ваших шаблонах

1 голос
/ 23 сентября 2011

Вам необходимо создать шаблонный контекстный процессор для передачи объекта каждому запросу. Вот пример пример

1 голос
/ 23 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...