Python Django如何区分密码是否错误;用户。是否处于“活动”状态;这是假的吗?

Python Django如何区分密码是否错误;用户。是否处于“活动”状态;这是假的吗?,python,django,web,Python,Django,Web,我使用user=auth.authenticate(username=username,password=password),但我无法区分密码是错误的还是user.is\u active是错误的,因为user两者都是无的。您可以使用给定的用户名获取用户,并检查其是否处于非活动状态: from django.contrib.auth import get_user_model user = get_user_model().objects.filter(username=username).fi

我使用
user=auth.authenticate(username=username,password=password)
,但我无法区分密码是错误的还是
user.is\u active
是错误的,因为
user
两者都是无的。

您可以使用给定的用户名获取用户,并检查其是否处于非活动状态:

from django.contrib.auth import get_user_model

user = get_user_model().objects.filter(username=username).first()
if user is None:
    # user did not exists
    pass
elif not user.is_active:
    # user is not active
    pass
else:
    # password was incorrect
    pass
从django.contrib.auth导入get\u user\u模型
user=get\u user\u model().objects.filter(username=username).first()
如果用户为无:
#用户不存在
通过
如果未激活user.u,则:
#用户未处于活动状态
通过
其他:
#密码不正确

pass
但通过这种方式,我可以知道某人的帐户是否可以不使用密码。我想避免这个问题。@PeaceSheep:到底是什么问题?您可以指定在用户必须传递密码的视图中,如果返回
None
,您可以检查给定
用户名的用户是否存在、是否可用等。您不必登录该用户。