我设置if语句以查看当前用户是否设置了密码。由于某种原因它只是不起作用。我试过了:
{% if not user.password %}
{% if user.password == None %}
{% if user.password is None %}
我有2个用户帐户(不同的浏览器打开),一个密码在一个,一个没有在另一个。当我使用上面的语句时,我在两个浏览器中都会显示相同的内容。我做错了什么?
答案 0 :(得分:32)
>>> a = User.objects.create_user('user1', 'user1@example.com')
>>> b = User.objects.create_user('user2', 'user2@example.com', password='secret')
>>> a.has_usable_password()
False
>>> b.has_usable_password()
True
<强>更新强>:
根据文档,has_usable_password
的行为发生了变化。
在Django 2.1中更改:
在旧版本中,如果密码为None或空字符串,或者密码使用的密码不在PASSWORD_HASHERS设置中,则此函数也会返回False。该行为被视为一个错误,因为它会阻止具有此类密码的用户请求重置密码。