Django,当我们有电子邮件而不是用户名时,覆盖“is_authenticated()”

时间:2012-06-20 09:55:40

标签: django django-views django-authentication django-email

我正在使用django-email-as-username应用使用电子邮件而非用户名进行身份验证,而且它就像魅力一样。

现在,在视图中,我想调用

if request.user.is_authenticated()

但是此方法只是根据(用户名+密码)而不是(电子邮件+密码)对用户进行身份验证。我该怎么处理这个?

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

在Django中,is_authenticated()始终为True个实例返回User,并始终为False个实例返回AnonymousUser。它与用户名/密码/电子邮件无关,django-email-as-username不会改变此行为。

请参阅Django的source code

# In User class line 279
def is_authenticated(self):
    """
    Always return True. This is a way to tell if the user has been
    authenticated in templates.
    """
    return True