Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Пропала переменная request в шаблонах Django. [RSS Feed]

#1 Май 12, 2016 14:05:44

Ryo
Зарегистрирован: 2015-11-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Пропала переменная request в шаблонах Django.

Предисловие.

Приложение требует предварительной авторизации (страничка авторизации расположена по “/index” или “/”). При попытке зайти на любую другую страничку (в нижеприведенном примере - на http://megatool.com/search?….), @login_required перенаправляет пользователя на “/”, с адресной строкой вроде:
http://megatool.com?next=/search%3Fcsrfmiddlewaretoken%3D1sO8ChOa7C7mjlPIvZ9Dw7eCsECKOczk%26aim%3Dmaster%253APAAAAhywAAA%253D%253D%26radioEnv%3Dmain
храня в параметре next остальные параметры GET-запроса первоначальной ссылки.

В шаблоне авторизации присутствует поле:

<input type="hidden" id="id_redirect" name="redirect" value="{{ request.GET.next }}">
которое хранит параметр next для последующей обработки в форме. Соответственно, в классе формы авторизации присутствует:
    redirect = forms.CharField(required=False)
обрабатываемый впоследствии в представлении.

Проблема

Все вышеописанное прекрасно работает для сервера разработчика, но перестало работать на Apache. В разборе полетов выяснилось, что сбоит шаблонизатор - {{ request.GET.next }}, а также пробный {{ request }} в сгенерированном HTML преобразуются в пустую строку.

В связи с этим пара вопросов:
- с чем это связано?
- если на первый вопрос ответов нет, то как можно принудительно передать в шаблон параметры (тот же HTTPRequest), если соответствующее представление вызывается автоматически через @login_required?

Спасибо.

Отредактировано Ryo (Май 12, 2016 14:06:37)

Офлайн

#2 Май 12, 2016 14:14:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Пропала переменная request в шаблонах Django.

А вы RequestContext в render_to_response передаёте?



Офлайн

#3 Май 12, 2016 14:37:14

Ryo
Зарегистрирован: 2015-11-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Пропала переменная request в шаблонах Django.

FishHook
А вы RequestContext в render_to_response передаёте?
Блин, я протупил редкостно. Действительно, можно же банально контекстом в рендер передать тот же request. Спасибо!

Правда, вопрос, почему на Апаче он перестает передаваться автоматом в шаблон, остается открытым, но то уже дело такое…

Офлайн

  • Начало
  • » Django
  • » Пропала переменная request в шаблонах Django.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version