Как зарегистрировать декоратор или добавить промежуточное ПО в стороннюю функцию просмотра?

Я использую django-allauth для управления учетными записями, включая регистрацию. Встроенный URL-адрес приложения allauth для регистрации — http://example.com/accounts/signup/. Мне нужно показать страницу с условиями и положениями, прежде чем перейти на страницу регистрации. Теперь любой может ввести этот URL-адрес прямо в браузере, чтобы перейти на страницу регистрации, не читая страницу Условий. Но они должны.

Как я мог это сделать? Есть ли способ добавить декоратор к этому представлению или любым другим способом без декоратора? То же самое относится к любым представлениям администратора.


person Babu    schedule 27.11.2012    source источник


Ответы (1)


Вы можете использовать сеанс django для хранения информации, если текущий пользователь принял условия.

Если пользователь этого не сделал, просто перенаправьте его на страницу T&C.

Если у вас возникли трудности с обертыванием третьей функции представления приложения таким проверочным кодом, попробуйте реализовать эту логику с помощью промежуточного ПО process_view.

Аргумент view_func и request.session — это то, что вам нужно.

person Krzysztof Szularz    schedule 27.11.2012
comment
Это решило мою проблему. Но единственная проблема заключается в том, что это промежуточное программное обеспечение будет использоваться для всех моих представлений. Можно ли это как-то исправить? - person Babu; 27.11.2012
comment
Вы можете определить, оборачиваете ли вы желаемое представление, используя аргумент view_func. - person Krzysztof Szularz; 27.11.2012