django如何用郵箱代替使用者名稱登入

2022-05-09 01:18:08 字數 1945 閱讀 2637

有兩種方法

方法一,修改username欄位,讓他跟email欄位一模一樣,然後把email放到username,email欄位裡面,username放到firstname或者lastname裡面,這樣username其實就是email了。簡單方便,而且**改動也比較少,我使用的是這種。

方法二,自己寫乙個方法來驗證,然後加進setting裡面。

下面方法**

就是另乙個不同的登陸backend。

而django會嘗不同的方式,哪個成功就用哪個

authentication.py12

3456

78910

1112

1314

1516

1718

fromdjango.contrib.auth.modelsimportuser

classemailauthbackend(object):

defauthenticate(self, username=none, password=none):

try:

user=user.objects.get(email=username)

ifuser.check_password(password):

returnuser

returnnone

exceptuser.doesnotexist:

returnnone

defget_user(self, user_id):

try:

returnuser.objects.get(pk=user_id)

exceptuser.doesnotexist:

returnnone

setting.py中加乙個認證方式:12

34authentication_backends=(

'django.contrib.auth.backends.modelbackend',

'account.authentication.emailauthbackend',

)

django使用者郵箱啟用流程

1.在setting.py中新增配置郵箱資訊 email backend django.core.mail.backends.smtp.emailbackend email host smtp.163.com 伺服器 email port 25 埠,一般情況下都為25 email host user...

ecshop使用者註冊如何去掉郵箱

這個是 如何將會員註冊頁的e mail由必填項改為非必填項 的操作方法,您可以稍微借鑑一下。以下修改是 ecshop2.7.1版 官方預設模板基礎上做的修改,其他版本或其他模板,大同小異。1 開啟 user passport.dwt 檔案 將 nblur checkemail this.value ...

如何用臨時表代替游標進行表記錄的拷貝

在sql中,有時候游標並不能實現所有的迴圈操作,比如當雙重迴圈時,內層重複定義動態游標就是sql語法所不允許的.下面介紹一種利用臨時表替代游標的方法.usetest go 假設有個table,ta,tb create table ta id uniqueidentifier primary key,...