Django-luokka-pohjainen-auth-katselua on uudelleen toteutus django.contrib.auth.views luokkaan perustuvia näkemyksiä. & Nbsp; toivottavasti jossain vaiheessa tämän hankkeen tai jotain vastaavaa tekee sen Django asianmukaista.
Tällä hetkellä vain LoginView toteutetaan. Muut seuraavat perässä.
asennus
PIP asentaa Django-luokan-pohjainen-auth-katselua
Basic käyttö
Sen sijaan, kuten django.contrib.auth.login omaan urls.py, vain käyttää yhtä antanut tämä hanke. urls.py:
alkaen class_based_auth_views.views tuonti LoginView
urlpatterns = kuviot ('',
& Nbsp; url (r '^ kirjautuminen / $ ", LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm), name =" login "),
)
laajentaminen LoginView Esimerkki
Nyt LoginView perustuu geneeristen luokan pohjainen näkemyksiä on paljon helpompi jatkaa. Sano sinun täytyy toteuttaa 2 vaiheessa kirjautuminen menettely kerran salasana:
alkaen django.contrib.auth tuonti kirjautuminen
luokan PhaseOneLoginView (LoginView):
& Nbsp; def form_valid (itse, muoto):
& Nbsp; "" "
& Nbsp; Forces superusers kirjautua 2 askel prosessissa (One Time Password). Muut käyttäjät ovat kirjautuneet sisään normaalisti
& Nbsp; "" "
& Nbsp; user = form.get_user ()
& Nbsp; jos user.is_superuser:
& Nbsp; self.save_user (user)
& Nbsp; palauttaa HttpResponseRedirect (self.get_phase_two_url ())
& Nbsp; muu:
& Nbsp; kirjautuminen (self.request, käyttäjä)
& Nbsp; palauttaa HttpResponseRedirect (self.get_success_url ())
& Nbsp; def get_phase_two_url (itse):
& Nbsp; paluuta taaksepäin ('phase_two_login')
& Nbsp; def save_user (itse, käyttäjä):
& Nbsp; self.request.session ["otp_user '] = user
luokan PhaseTwoLoginView (FormView):
& Nbsp; form_class = OTPTokenForm
& Nbsp; def get_user (itse):
& Nbsp; paluuta self.request.session.get ('otp_user ", Ei mitään)
& Nbsp; def clean_user (itse):
& Nbsp; Jos "otp_user 'in self.request.session:
& Nbsp; del self.request.session ['otp_user "]
& Nbsp; def form_valid (itse, muoto):
& Nbsp; code = form.cleaned_data.get ('code)
& Nbsp; user = self.get_user ()
& Nbsp; kirjautuminen (pyynnöstä, käyttäjän)
vaatimukset
- Python
Kommentteja ei löytynyt