"Django klasės pagrindu-auth-svečiai yra django.contrib.auth.views klasei remiantis nuomonėmis & nbsp reimplementation;. Tikimės, kad tam tikru momentu šis projektas ar kažkas panašaus bus padaryti jį į Django tinkamai.
Šiuo metu tik LoginView įgyvendinama. Kiti paseks.
Diegimas
PIP įdiegti Django-klasės pagrindu sudaryti auth-vaizdas
Pagrindinės naudojimas "
Vietoj įskaitant django.contrib.auth.login į savo urls.py, tiesiog naudokite vieną pateiktą šiame projekte. urls.py:
nuo class_based_auth_views.views importo LoginView
urlpatterns = modeliai (''
& Nbsp; URL (R '^ Įėjimas / $ ", LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm), name =" prisijungti "),
)
"Išplėtus LoginView Pavyzdys
Dabar, LoginView remiasi bendrinis klasės pagrįstų nuomonėmis ji yra daug lengviau išplėsti. Tarkime, jūs turite įdiegti 2 žingsnis prisijungimo procedūrą su viena laiko slaptažodžiu:
nuo django.contrib.auth importo Prisijungti
klasė PhaseOneLoginView (LoginView):
& Nbsp; Def form_valid (savarankiškai, forma):
& Nbsp; "" "
& Nbsp; pajėgos superusers prisijunkite 2 žingsnio procesas (vienas Laikas slaptažodis). Kiti vartotojai yra prisijungę paprastai
& Nbsp; "" "
& Nbsp; user = form.get_user ()
& Nbsp; jei user.is_superuser:
& Nbsp; self.save_user (vartotojas)
& Nbsp; sugrįžti HttpResponseRedirect (self.get_phase_two_url ())
& Nbsp; dar:
& Nbsp; Slapyvardis (self.request, vartotojo)
& Nbsp; sugrįžti HttpResponseRedirect (self.get_success_url ())
& Nbsp; Def get_phase_two_url (si):
& Nbsp; grąža atvirkštinis (phase_two_login)
& Nbsp; Def save_user (savarankiškai, vartotojo):
& Nbsp; self.request.session ['otp_user'] = vartotoją
klasė PhaseTwoLoginView (FormView):
& Nbsp; form_class = OTPTokenForm
& Nbsp; Def get_user (si):
& Nbsp; grąža self.request.session.get (otp_user "Nėra)
& Nbsp; Def clean_user (si):
& Nbsp; jei "otp_user" į self.request.session:
& Nbsp; del self.request.session ['otp_user']
& Nbsp; Def form_valid (savarankiškai, forma):
& Nbsp; kodas = form.cleaned_data.get (kodas)
& Nbsp; user = self.get_user ()
& Nbsp; Slapyvardis (prašymas, vartotojo)
Reikalavimai
- Python,
Komentarai nerastas