.
জ্যাঙ্গো শ্রেণীর ভিত্তিক প্রমাণীকরণ মতামত বর্গ ভিত্তিক দেখেছে & nbsp হিসাবে django.contrib.auth.views একটি reimplementation হয়; আশা রাখি, কিছু বিন্দু এই প্রকল্প বা সঠিক জ্যাঙ্গো মধ্যে এটি করা হবে অনুরূপ কিছু.
বর্তমানে শুধুমাত্র LoginView বাস্তবায়িত হয়. অন্যদের অনুসরণ করা হবে.
সংস্থাপনা
জ্যাঙ্গো শ্রেণীর ভিত্তিক প্রমাণীকরণ মতামত ইনস্টল বীচি
বেসিক ব্যবহার
পরিবর্তে আপনার urls.py মধ্যে django.contrib.auth.login সহ, শুধু এই প্রকল্পের দ্বারা উপলব্ধ ব্যবহার করুন. urls.py:
class_based_auth_views.views আমদানি LoginView থেকে
urlpatterns = নিদর্শন ('',
& Nbsp; URL (রাঃ '^ লগইন / $', LoginView.as_view (form_class = EmailAsUsernameAuthenticationForm), নাম = "লগইন"),
)
সম্প্রসারণ LoginView উদাহরণ
এখন যে LoginView জেনেরিক বর্গ ভিত্তিক মতামত উপর ভিত্তি করে এটি প্রসারিত করা অনেক সহজ হয়. আপনি একটি এক সময় পাসওয়ার্ড দিয়ে একটি 2 ধাপে লগইন পদ্ধতি বাস্তবায়ন প্রয়োজন বলে:
django.contrib.auth আমদানি লগইন থেকে
বর্গ PhaseOneLoginView (LoginView):
& Nbsp; Def 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; Def get_phase_two_url (স্ব):
& Nbsp; ফিরে (বিপরীতক্রমে 'phase_two_login')
& Nbsp; Def save_user (স্ব ব্যবহারকারী):
& Nbsp; self.request.session ['otp_user'] user =
বর্গ PhaseTwoLoginView (FormView):
& Nbsp; form_class = OTPTokenForm
& Nbsp; Def get_user (স্ব):
& Nbsp; ফিরে self.request.session.get ('otp_user', কেউ)
& Nbsp; Def clean_user (স্ব):
& Nbsp; self.request.session মধ্যে 'otp_user' যদি:
& Nbsp; দেল self.request.session ['otp_user']
& Nbsp; Def form_valid (স্ব, ফর্ম):
& Nbsp; কোড = form.cleaned_data.get ('কোড')
& Nbsp; ব্যবহারকারী = self.get_user ()
& Nbsp; লগইন (অনুরোধ, ব্যবহারকারী)
আবশ্যক
- পাইথন
পাওয়া মন্তব্যসমূহ না