.
Django-class-based İcazə-views sinif based baxış & nbsp kimi django.contrib.auth.views bir reimplementation edir; İnşallah bir nöqtədə bu layihə və ya müvafiq Django daxil edəcək bənzər bir şey edir.
Hal-hazırda yalnız LoginView həyata keçirilir. başqaları olacaq.
Quraşdırma
Django-class-based İcazə-views bərpa tırtıl
Əsas istifadə
Yerine urls.py daxil django.contrib.auth.login o cümlədən, yalnız bu layihə ilə təmin birini istifadə edin. urls.py:
class_based_auth_views.views idxal LoginView olan
urlpatterns = nümunələri ('',
& Nbsp; url (r '^ giriş / $, LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm) name = "daxil"),
)
artırılması LoginView Məsələn
İndi LoginView ümumi sinif based views əsaslanır bu genişləndirmək üçün çox asandır. Siz bir dəfə parol ilə 2 addım giriş proseduru həyata keçirmək lazımdır De:
django.contrib.auth idxal giriş
sinif PhaseOneLoginView (LoginView):
& Nbsp; def form_valid (özünü, forma):
& Nbsp; "" "
& Nbsp; Qüvvələri superusers 2 addım prosesi (One Time Password) daxil etmək. Digər istifadəçilər normal daxil
& Nbsp; "" "
& Nbsp; user = form.get_user ()
& Nbsp; user.is_superuser əgər:
& Nbsp; self.save_user (istifadəçi)
& Nbsp; qayıtmaq HttpResponseRedirect (self.get_phase_two_url ())
& Nbsp; başqa:
& Nbsp; giriş (self.request, istifadəçi)
& Nbsp; qayıtmaq HttpResponseRedirect (self.get_success_url ())
& Nbsp; def get_phase_two_url (özünə):
& Nbsp; qaytarılması əks (phase_two_login)
& Nbsp; def save_user (özünü, istifadəçi):
& Nbsp; self.request.session ['otp_user'] istifadəçi =
sinif PhaseTwoLoginView (FormView):
& Nbsp; form_class = OTPTokenForm
& Nbsp; def get_user (özünə):
& Nbsp; qaytarılması self.request.session.get (otp_user, Yox)
& Nbsp; def clean_user (özünə):
& Nbsp; self.request.session ildə "otp_user" əgər:
& Nbsp; del self.request.session ['otp_user']
& Nbsp; def form_valid (özünü, forma):
& Nbsp; code = form.cleaned_data.get (code)
& Nbsp; user = self.get_user ()
& Nbsp; giriş (tələb, istifadəçi)
tələblər
- Python
Şərhlər tapılmadı