【问题标题】:Backend Validation error message using django使用 django 的后端验证错误消息
【发布时间】:2020-01-11 04:47:08
【问题描述】:

在登录页面输入正确的用户名和密码时,它可以正常工作,而在输入错误的用户名和密码时,如何显示错误消息。

views.py

def user_login(request):
   logout(request)
   username = password = ''
   username = request.POST.get('username')
   print(username)
   password = request.POST.get('password')
   print(password)
   if request.POST:
       user = authenticate(username=username, password=password)
       if user is not None:
               if user.is_active:
                       auth_login(request, user)
                       return render(request, 'admin_pannel.html', { 'dept' : dt, 'ds' : ds })
                       return redirect('/dashboard/')
   return render(request, 'registration/login.html', {'dt' : dt })

【问题讨论】:

    标签: django-models django-templates django-views


    【解决方案1】:

    错误消息通常由django.forms.forms.Form 的实例处理。对于您的观点,我建议如下:

    from django.contrib.auth.forms import AuthenticationForm
    
    def user_login(request):
        if request.method == 'POST':
            logout(request)
            form = AuthenticationForm(request.POST)
    
            if form.is_valid():
                user = form.get_user()
                auth_login(request, user)
                return render(request, 'admin_pannel.html', {...})
        else:
            form = AuthenticationForm()
    
        return render(request, 'registration/login.html', {'form': form, ...})
    

    快速浏览一下AuthenticationForm.clean 看起来它会完成与您在视图中所做的相同的事情。

    唯一想到的另一件事是Django's messages framework,但我认为这不是您的最佳选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多