Найти - Пользователи
Полная версия: добавить предобработчик для всех страниц
Начало » Django » добавить предобработчик для всех страниц
1 2
ravisen
Есть большой уже реализованный проект.
Сейчас требуется, чтобы при обращении к любой из страниц сайта проверялось наличие определенной куки.
В случае ее отсутствия - переадресация, в случае наличия - загружать запрошенную страницу.

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

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

да и не красиво все это…
так что прошу помощи
Александр Кошелев
http://docs.djangoproject.com/en/dev/topics/http/middleware/#topics-http-middleware
ravisen
мне еще вот такой вариант подсказали:
http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors

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

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

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

Кнопка “Да” является ссылкой на реально запрошенную страницу с флагом активации.
Этот флаг отслеживается в мидлвари и по его появлении должна сохраниться куки, а потом return None , чтобы обработка страницы пошла дальше.
Но возвращая None куки соответственно не сохраняется. В инете нашел библиотеку, которая подключается в settings к мидлвари и решает проблему (по крайней мере так написано, сам не пробовал), но очень не хочется идти этим путем - подсоединять несколько файлов ради сохранения 1 куки =)
slav0nic
код покажи
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB