.
بر اساس جنگو طبقه-تایید-نمایش ها پیاده سازی مجدد از django.contrib.auth.views به عنوان نمایش ها طبقه مبتنی بر و nbsp است؛ امیدوارم در برخی از نقطه این پروژه یا چیزی شبیه به آن را به جنگو مناسب را.
در حال حاضر تنها LoginView اجرا شده است. دیگران را دنبال کنید.
نصب
تصویر در تصویر طبقه جنگو مبتنی بر تایید نمایش ها-نصب
استفاده عمومی
به جای جمله django.contrib.auth.login به urls.py خود را، فقط استفاده از یک ارائه شده توسط این پروژه می باشد. urls.py:
از class_based_auth_views.views واردات LoginView
الگوهای urlpatterns = (''،
& nbsp؛ از URL (R '^ ورود / $'، LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm)، نام = "ورود")،
)
گسترش LoginView مثال
حالا که LoginView بر دیدگاه های مبتنی بر کلاس جنریک بر اساس آن بسیار آسان تر به گسترش. می گویند شما نیازمند پیاده سازی یک روش ورود 2 مرحله با یک رمز عبور یک زمان:
از ورود به واردات django.contrib.auth
PhaseOneLoginView کلاس (LoginView):
& nbsp؛ از دف form_valid (خود، فرم):
از & nbsp؛ "" "
& nbsp؛ در superusers نیروهای شوید در یک فرایند گام 2 (یک بار رمز عبور). دیگر کاربران به طور معمول در سیستم وارد شده
از & 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؛ از دف get_phase_two_url (خود):
& nbsp؛ در بازگشت به عقب ('phase_two_login')
& nbsp؛ از دف save_user (خود، کاربر):
& nbsp؛ در self.request.session ['otp_user'] = کاربر
PhaseTwoLoginView کلاس (FormView):
& nbsp؛ در form_class = OTPTokenForm
& nbsp؛ از دف get_user (خود):
& nbsp؛ در self.request.session.get بازگشت ('otp_user، هیچ)
& nbsp؛ از دف clean_user (خود):
& nbsp؛ اگر 'otp_user در self.request.session:
& nbsp؛ در دل self.request.session ['otp_user']
& nbsp؛ از دف form_valid (خود، فرم):
کنید. & nbsp؛ کد = form.cleaned_data.get ('کد)
& nbsp؛ از کاربر = self.get_user ()
& nbsp؛ از ورود (درخواست، کاربر)
در مورد نیاز:
پایتون
نظر یافت نشد