Форум сайта python.su
Есть большой уже реализованный проект.
Сейчас требуется, чтобы при обращении к любой из страниц сайта проверялось наличие определенной куки.
В случае ее отсутствия - переадресация, в случае наличия - загружать запрошенную страницу.
Прописывать это условие в каждый обработчик не красиво и не удобно.
Господа, возможно ли сделать некий предобработчик для всех страниц кроме админки ?
Офлайн
А может не стоит так делать? Если опишите проблему подробнее в общих чертах, то, возможно, найдется другое, более элегантное решение?
Офлайн
В общих чертах:
перед входом на сайт нужно пользователя спросить о возрасте (сайт с алкогольной продукцией). Вопрос должен быть на отдельной странице. Если выбрали “мне меньше 18”, то переадресовать на спец. страничку, если выбрали “я уже взрослый”, то загружать ту страницу, которая была запрошена изначально
Офлайн
на самом деле сделал сначала все это с помощью JS(добавил в главный шаблон), куки и переадресации
но проблема в том, что в IE6 создание куки с помощью JS работает через раз
вроде нашел хак http://articles.sitepoint.com/article/p3p-cookies-ie6/1
но т.к. я использую Multi IE, то проверить работает или нет нельзя
да и не красиво все это…
так что прошу помощи
Офлайн
Офлайн
мне еще вот такой вариант подсказали:
http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors
с виду он попроще будет.
что посоветуете ?
Офлайн
ravisen
тебе показали на каком уровне это стоит делать)
в мидлвари у тебя есть доступ к request и соответственно к кукисам, с ними и работай.
Офлайн
Daevaorn, slav0nic
спасибо за помощь
Офлайн
возникла еще одна проблема
не могу сохранить куки в мидлвари без возврата объекта типа HttpRequest
Кнопка “Да” является ссылкой на реально запрошенную страницу с флагом активации.
Этот флаг отслеживается в мидлвари и по его появлении должна сохраниться куки, а потом return None , чтобы обработка страницы пошла дальше.
Но возвращая None куки соответственно не сохраняется. В инете нашел библиотеку, которая подключается в settings к мидлвари и решает проблему (по крайней мере так написано, сам не пробовал), но очень не хочется идти этим путем - подсоединять несколько файлов ради сохранения 1 куки =)
Офлайн
код покажи
Офлайн