1. 程式人生 > >可以自定義有關的表單的驗證,通過重寫authenticate,從可以通過郵箱驗證(原來只能通過使用者名稱驗證)

可以自定義有關的表單的驗證,通過重寫authenticate,從可以通過郵箱驗證(原來只能通過使用者名稱驗證)

  1. 在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中密碼是加密的