Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » добавить предобработчик для всех страниц [RSS Feed]

#1 Дек. 3, 2009 11:57:08

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

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

Прописывать это условие в каждый обработчик не красиво и не удобно.

Господа, возможно ли сделать некий предобработчик для всех страниц кроме админки ?



Офлайн

#2 Дек. 3, 2009 12:28:56

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

А может не стоит так делать? Если опишите проблему подробнее в общих чертах, то, возможно, найдется другое, более элегантное решение?



Офлайн

#3 Дек. 3, 2009 13:24:20

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

В общих чертах:
перед входом на сайт нужно пользователя спросить о возрасте (сайт с алкогольной продукцией). Вопрос должен быть на отдельной странице. Если выбрали “мне меньше 18”, то переадресовать на спец. страничку, если выбрали “я уже взрослый”, то загружать ту страницу, которая была запрошена изначально



Офлайн

#4 Дек. 3, 2009 14:08:19

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

на самом деле сделал сначала все это с помощью JS(добавил в главный шаблон), куки и переадресации
но проблема в том, что в IE6 создание куки с помощью JS работает через раз
вроде нашел хак http://articles.sitepoint.com/article/p3p-cookies-ie6/1
но т.к. я использую Multi IE, то проверить работает или нет нельзя

да и не красиво все это…
так что прошу помощи



Офлайн

#5 Дек. 3, 2009 14:27:00

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

Офлайн

#6 Дек. 3, 2009 15:42:20

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

мне еще вот такой вариант подсказали:
http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors

с виду он попроще будет.
что посоветуете ?



Офлайн

#7 Дек. 3, 2009 16:19:27

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

ravisen
тебе показали на каком уровне это стоит делать)
в мидлвари у тебя есть доступ к request и соответственно к кукисам, с ними и работай.

Офлайн

#8 Дек. 3, 2009 16:29:41

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

Daevaorn, slav0nic

спасибо за помощь



Офлайн

#9 Дек. 7, 2009 16:33:33

ravisen
От:
Зарегистрирован: 2009-12-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

возникла еще одна проблема

не могу сохранить куки в мидлвари без возврата объекта типа HttpRequest

Кнопка “Да” является ссылкой на реально запрошенную страницу с флагом активации.
Этот флаг отслеживается в мидлвари и по его появлении должна сохраниться куки, а потом return None , чтобы обработка страницы пошла дальше.
Но возвращая None куки соответственно не сохраняется. В инете нашел библиотеку, которая подключается в settings к мидлвари и решает проблему (по крайней мере так написано, сам не пробовал), но очень не хочется идти этим путем - подсоединять несколько файлов ради сохранения 1 куки =)



Офлайн

#10 Дек. 7, 2009 16:42:40

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

добавить предобработчик для всех страниц

код покажи

Офлайн

  • Начало
  • » Django
  • » добавить предобработчик для всех страниц[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version