django ระดับตาม-รับรองความถูกต้องเป็นมุมมองของ reimplementation django.contrib.auth.views เป็นมุมมองตามระดับ & nbsp;. หวังว่าในบางจุดในโครงการนี้หรือสิ่งที่คล้ายกันจะทำให้มันกลายเป็น django ที่เหมาะสม
ขณะนี้มีเพียง LoginView จะดำเนินการ คนอื่น ๆ ที่จะตามมา
การติดตั้ง
PIP ติดตั้ง django ระดับตาม-รับรองความถูกต้องวิว
การใช้งานขั้นพื้นฐาน
แทนที่จะรวมทั้ง django.contrib.auth.login เข้า urls.py ของคุณเพียงแค่ใช้ให้โดยโครงการนี้ urls.py:
จากการนำเข้า class_based_auth_views.views LoginView
urlpatterns รูปแบบ = ('',
& nbsp; สมาชิก (R '^ เข้าสู่ระบบ / $' LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm) ชื่อ = "เข้าสู่ระบบ")
)
การขยายตัวอย่าง LoginView
ตอนนี้ที่ LoginView จะขึ้นอยู่กับระดับทั่วไปตามมุมมองที่มันง่ายมากที่จะขยาย สมมติว่าคุณต้องการที่จะใช้ขั้นตอนขั้นตอนที่ 2 เข้าสู่ระบบด้วยรหัสผ่านครั้งเดียว:
เข้าสู่ระบบจากการนำเข้า django.contrib.auth
ระดับ PhaseOneLoginView (LoginView):
& nbsp; def form_valid (ตัวเองในรูปแบบ):
& nbsp; "" "
& nbsp; กองกำลัง superusers เข้าสู่ระบบในกระบวนการขั้นตอนที่ 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 'ไม่มี)
& 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; เข้าสู่ระบบ (ตามคำขอของผู้ใช้)
ต้องการ
- งูใหญ่
ความคิดเห็นที่ไม่พบ