上一章节我们已经实现了利用用户名注册登录功能,这一章我们来学习如何使用邮箱注册。
1、在users/views.py中引入以下两个方法
from django.contrib.auth.backends import ModelBackend from django.db.models import Q
ModelBackend是Django使用的默认身份验证后端,我们将重写这个类让他支持验证邮箱,它实现了两个必要的方法:get_user(user_id) 和 authenticate(request, **credentials),以及其它一系列可选的权限相关的方法,具体我们可以去看官方文档或者直接看源码。
Q方法可参考我的头条文章:如何在Django ORM中进行 or、and、not查询?
Q 对象能通过 & 和 | 操作符连接起来。当操作符被用于两个 Q 对象之间时会生成一个新的 Q 对象。
2、在users/views.py中创建MyBackend类
class MyBackend(ModelBackend):
def authenticate(self, request, username=None, password=None):
try:
user =


