可以自定義有關的表單的驗證,通過重寫authenticate,從可以通過郵箱驗證(原來只能通過使用者名稱驗證)
阿新 • • 發佈:2018-12-10
- 在settings.py中加入
AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend',
)
其中users代表是app,CustomBackend代表的是類名 2. 在views.py中寫入
from django.contrib.auth.backend import ModelBackend
from django.db.models import Q
from .models improt UserProfile
class CustomBackend(ModelBackend):
def authenticate (self,username=None,password=None,**kwargs):
try:
user = UserProfile.object.get(Q(username=username)|Q(email=username))# 這裡引入Q是或者的意思
if user.check_password(password):
return user
except Exception as e:
reutrn None
這裡要注意不能通過passwrod直接驗證,因為在django中密碼是加密的