如何在django中设置用邮箱也可以登录?

Posted 叉歪叉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在django中设置用邮箱也可以登录?相关的知识,希望对你有一定的参考价值。

首先在view.py中构建一个类集成ModelBackend,在这个类里重写authenticate,通过Q添加邮箱验证的方式。

from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
class CustomBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username)|Q(email=username)) #UserProfile是我自己写的用户类替代了系统默认的user类
if user.check_password(password):
return user
except Exception as e:
return None
然后在settings中添加:
AUTHENTICATION_BACKENDS = (
‘users.views.CustomBackend‘,
)

以上是关于如何在django中设置用邮箱也可以登录?的主要内容,如果未能解决你的问题,请参考以下文章

263企业邮箱 如何在Outlook邮件客户端中设置IMAP收发邮件

263企业邮箱 如何在Outlook邮件客户端中设置IMAP收发邮件

django captcha和邮箱验证机制

使用 Django 模板作为片段

如何在 Django Summernote 中显示编程片段的代码块?

如何在django中设置会话超时?