我正在尝试验证我的自定义用户
def login_user(request):
print "hi"
context = RequestContext(request)
email = request.POST.get('username')
password = request.POST.get('password')
# print type(username)
# print "username",username
try:
print "email-->",email, "password", password
user=authenticate(username=email,password=password)
print 'user-->',user
if user.is_active:
json = {"email":email}
return render(request, 'success.html', json)
else:
return HttpResponse("Your account is disabled.")
except ObjectDoesNotExist:
return HttpResponse("INvalid User")
当我点击此代码时,它总是给我用户==无。 我的身份验证方法返回None。为什么会发生这种情况
答案 0 :(得分:1)
将变量而不是其名称作为字符串传递
user=authenticate(username=email, password=password)
而不是
user=authenticate(username="email", password="password")
here你明白为什么它会返回None
答案 1 :(得分:0)
user=authenticate(username="email",password="password")
如果您给出引号中的值,它将采用原始值。删除引号并尝试如下以获取要替换的变量的值。
user=authenticate(username=email,password=password)
答案 2 :(得分:0)
USERNAME_FIELD = 'email'
它返回none,因为您给出的指定EMAIL的用户名不匹配,authenticate方法通过用户名进行身份验证,而不是通过电子邮件进行身份验证,以使用电子邮件作为上面的用户名指定,并使用User.DoesNotExist进行异常。