1.首先在views檢視函式內引入
from django.contrib.auth import authenticate
from django.contrib.auth.backends import modelbackend#
q表示查詢條件
from django.db.models import q
modelbackend即為要重寫的驗證登入類
2.authenticate會自自動呼叫重寫的類
user = authenticate(request=request,username=email,password=password)
3.重寫登入類
class custombackend(modelbackend):
def authenticate(self, request, username=none, password=none, **kwargs):
try:
# 可以通過email\mobile....賬號進行賬號登入
user = userprofile.objects.get(q(email=username)|q(mobile=username))
# check_password 驗證使用者的密碼是否正確
if user.check_password(password):
return user
else:
return none
except exception as e:
return none
4.settings裡面配置
authentication_backends = (
'login.views.custombackend',
)
django 自定義登入驗證邏輯
本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...
django 自定義登入驗證邏輯
本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...
Django 自定義標籤
模版是乙個用django模版語言標記過的python字串。模版可以包含模版標籤和變數。模版標籤是在乙個模版裡起作用的標記。比如,乙個模版標籤可以產生控制結構的內容 if或者for 可以獲取資料庫內容或者訪問其它模版標籤。乙個標籤塊被包圍 變數標籤被 包圍 context是乙個傳遞給模版的key va...