Django的基于类的-AUTH-观点是django.contrib.auth.views为基础的阶级观点&NBSP的重新实现;希望在某个时候该项目或类似的将使它成为Django的正确的东西。
目前仅LoginView实现。其他人也会跟进。
安装
PIP安装Django级为主-AUTH-意见
基本用法
相反,包括django.contrib.auth.login到您的urls.py,只需用本项目提供的之一。 urls.py:
从class_based_auth_views.views进口LoginView
urlpatterns的=型态('',
  URL(R'^登录/ $',LoginView.as_view(form_class = EmailAsUsernameAuthenticationForm),NAME =“登录”),
)
扩展LoginView示例
现在LoginView基于通用类为本次这是很容易扩展。假设你需要实现一个一次性密码2步登录过程:
从django.contrib.auth进口登录
类PhaseOneLoginView(LoginView):
 高清form_valid(个体经营,形式):
 “”“
 强制超级用户登录的两个步骤(一次性密码)。其他用户登录正常
 “”“
 用户= form.get_user()
 如果user.is_superuser:
  self.save_user(用户)
 返回HttpResponseRedirect(self.get_phase_two_url())
 否则:
 登录(self.request,用户)
 返回HttpResponseRedirect(self.get_success_url())
 高清get_phase_two_url(个体经营):
 相反回报('phase_two_login“)
 高清save_user(个体经营,用户):
  self.request.session ['otp_user'] =用户
类PhaseTwoLoginView(FormView控件):
  form_class = OTPTokenForm
 高清GET_USER(个体经营):
 返程self.request.session.get('otp_user',无)
 高清clean_user(个体经营):
 如果self.request.session“otp_user”:
 德尔self.request.session ['otp_user']
 高清form_valid(个体经营,形式):
 代码= form.cleaned_data.get(“代码”)
 用户= self.get_user()
 登录(请求用户)
要求:
- 在Python的
评论没有发现