2016-04-09 4 views
1

Если я контекстный процессор, как это:объект «WSGIRequest» не имеет атрибута

def add_external(request): 
    context = {"stext":"this is the info"} 
    return context 

и добавить к настройкам:

'OPTIONS': { 
    'context_processors': [ 
     'django.template.context_processors.debug', 
     'django.template.context_processors.request', 
     'django.contrib.auth.context_processors.auth', 
     'django.contrib.messages.context_processors.messages', 
     'website.context_processor.add_external', 
    ], 

я могу получить доступ к переменной в шаблоне с помощью {{stext}} , Когда я теперь прыгать по ссылке в этом шаблоне в другой точке зрения в то же приложение, которое я не должен быть в состоянии получить доступ к этой переменной как:

request.stext 

Вместо этого я получаю эту ошибку:

'WSGIRequest' object has no attribute 'stext' 

Что Мне здесь не хватает?

+1

Нет, процессоры контекста не добавляют атрибуты к объекту запроса, и они, конечно же, не делают данные доступными в совершенно другом запросе. Почему вы думаете, что это должно сработать? –

+0

Вы правы, я пытался сделать то, что технически совершенно невозможно. Я разрешил его с помощью промежуточного программного обеспечения (хотя код выглядит только по-разному в той же детали -request.session, а не в запросе, в фоновом режиме много чего происходит). –

ответ

0

Вы внедрили контекстный процессор, данные которого доступны только внутри шаблонов, но не объект request.

Возможно использование специального запроса middleware.

+0

Действительно, промежуточное ПО решило мою проблему, я использовал уже реализованное промежуточное программное обеспечение сеанса для этого. –

Смежные вопросы