Django-клас на основі-Auth-переглядів це перевиконання django.contrib.auth.views як вид класу на основі і NBSP ;. Сподіваюся, в якийсь момент цей проект або щось подібне буде зробити це в Django правильною.
В даний час тільки LoginView реалізується. Решта будуть слідувати.
<Сильний> Установка
пункт встановити Django-класу, орієнтованого на Auth-вид
<Сильний> Основи використання
Замість того, щоб у тому числі django.contrib.auth.login у вашому urls.py, просто використовуйте той, що надається в рамках даного проекту. urls.py:
від class_based_auth_views.views LoginView імпорту
urlpatterns = візерунки ('',
& NBSP; гіперпосилання (г '^ Увійти / $ ", LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm), ім'я =" Логін "),
)
<Сильний> Розширення LoginView Приклад
Тепер, LoginView заснований на уявленнях, заснованих родове класу набагато легше розширити. Скажімо, ви повинні реалізувати 2 етап процедуру входу з один раз пароль:
від django.contrib.auth імпорту логін
клас PhaseOneLoginView (LoginView):
& NBSP; Def form_valid (я, форма):
& NBSP; "" "
& NBSP; сил суперкористувача для входу в 2 етапи (One Time Password). Інші користувачі реєструються в нормально
& NBSP; "" "
& NBSP; користувач = form.get_user ()
& NBSP; якщо user.is_superuser:
& NBSP; self.save_user (користувач)
& NBSP; повернутися HttpResponseRedirect (self.get_phase_two_url ())
& NBSP; інше:
& NBSP; Логін (self.request, користувач)
& NBSP; повернутися HttpResponseRedirect (self.get_success_url ())
& NBSP; Def get_phase_two_url (само):
& NBSP; повернення назад ('phase_two_login ")
& NBSP; Def save_user (я, користувач):
& NBSP; self.request.session ['otp_user'] = користувач
клас PhaseTwoLoginView (FormView):
& NBSP; form_class = OTPTokenForm
& NBSP; Def get_user (само):
& NBSP; повернення self.request.session.get ('otp_user ", None)
& NBSP; Def clean_user (само):
& NBSP; якщо "otp_user» в self.request.session:
& NBSP; дель self.request.session ['otp_user']
& NBSP; Def form_valid (я, форма):
& NBSP; код = form.cleaned_data.get ("код")
& NBSP; користувач = self.get_user ()
& NBSP; Логін (запит, користувач)
Вимоги
- Python
Коментар не знайдено