def my_login(request): curr_url = request.GET.get('next','/teacher') error='' if request.method =='POST': result = {} form = crm_forms.LoginForm(request.POST) if form.is_valid(): cd = form.cleaned_data user = authenticate( username = cd['username'], password = cd['password'], ) if user: login(request,user) human_username = models.UserProfile.objects.get(email=request.POST['username']) request.session['username']=human_username.name request.session['email']=request.POST['username'] response = HttpResponseRedirect(curr_url) return response else: error = '用户名或密码错误' form = crm_forms.LoginForm(request.POST) return render(request, 'teacher/login.html', {'form': form,'error':error}) else: error='请输入用户名/密码' form = crm_forms.LoginForm() return render(request,'teacher/login.html',{'form':form,'error':error})
def login(request): """登录功能""" register_obj = forms.RegisterForm() # 获取RegisterForm对象 if request.method == "GET": login_obj = forms.LoginForm() return render(request, "login.html", {"login_obj": login_obj, "register_obj": register_obj}) # 返回登录注册页面 elif request.method == "POST": login_obj = forms.LoginForm(request.POST) if login_obj.is_valid(): request.session.clear_expired() # 清空过期的session username = login_obj.clean().get("username") # 获取用户名 if login_obj.clean().get("remember", None) == "True": request.session["username"] = username # 设置session return render(request, "index.html", {"username": username}) else: return render(request, "login.html", {"login_obj": login_obj, "register_obj": register_obj})
def get(self, request, *args, **kwargs): if request.user.is_authenticated: url = reverse('base', args=args, kwargs=kwargs) return HttpResponseRedirect(url) login_form = forms.LoginForm() if 'login_form' not in kwargs: kwargs.update(dict(login_form=login_form)) return super().get(request=request, *args, **kwargs)
def login(request): err_msg = '' form_obj = forms.LoginForm() if request.method == 'POST': form_obj = forms.LoginForm(request.POST) if form_obj.is_valid(): username = form_obj.cleaned_data['username'] password = form_obj.cleaned_data['password'] user = auth.authenticate(request, username=username, password=password) if user is not None: auth.login(request, user) init_permission(user, request) return redirect('index') err_msg = '用户名或密码错误' return render(request, 'login.html', locals())
def post(self, request, *args, **kwargs): login_form = forms.LoginForm(request.POST) login_form.full_clean() if login_form.is_valid(): username = User.normalize_username( login_form.cleaned_data['email']) user_exists = User.objects.filter(username=username).exists() if not user_exists: login_form.add_error('email', 'Пользователь не найден') user = authenticate(request, username=username, password=login_form.cleaned_data['password']) print(user) if user is None and user_exists: from crm.utils.backends import CustomModelBackend if CustomModelBackend.is_user_failed_attempts_exceeded( username): login_form.add_error( 'email', 'Пользователь временно заблокирован за превышение количества ' 'попыток входа. Пожалуйста, повторите попытку позже.') else: login_form.add_error('password', 'Неверный пароль') if user: login(request, user) url = reverse('base', args=args, kwargs=kwargs) return HttpResponseRedirect(url) else: kwargs['login_form'] = login_form return self.get(request, *args, **kwargs) else: kwargs.update(dict(login_form=login_form)) return self.get(request=request, *args, **kwargs)