Мне нужно проверить авторизацию пользователя во всех представлениях одного из моих приложений Django (я не использую Django, встроенного в систему auth) и перенаправить пользователя на страницу "login please", если авторизация не удалась.
Код выглядит следующим образом:
try:
admin_from_session = request.session['admin'];
admin = Administrator.objects.get(login = admin_from_session.login, password = admin_from_session.password, enabled=True);
except KeyError, Administrator.DoesNotExist:
return HttpResponseRedirect('/controlpanel/login')
Вопрос: как я могу запустить этот код в начале каждого представления, не повторяя его каждый раз?
Если бы я написал свою программу на PHP, я бы поместил этот код в отдельный файл и написал что-то вроде этого в начале каждой страницы, требующей авторизации:
include("redirect_if_not_logged_in.inc.php");
Решения, которые я нашел, были:
- теги включения - не делает, потому что я не могу перенаправить нигде оттуда
- пользовательская функция - также не делает, из-за того же причина.
Задача кажется тривиальной, но я не могу найти решение. Я был бы очень благодарен за любую помощь.