0

我爲Django的 打開外殼命令python manage.py殼Django的權威性實時效果

from django.contrib.auth import authenticate 
print authenticate(username='q80', password='nokia6230') #result q80 

現在如果我在Django管理站點/管理 記錄並更改密碼,並返回到shell 如果我使用舊值仍然可以進行身份​​驗證!

from django.contrib.auth import authenticate 
print authenticate(username='q80', password='newpassword') #result None 
print authenticate(username='q80', password='nokia6230') #result q80 

如果關閉shell會話並再次打開它的工作!

我該如何實時改變效果!?

+0

在更改管理員密碼後,如果有任何更改,是否嘗試檢查數據庫?我也想知道,如果您的任何身份驗證後端緩存 – andrefsp

+0

我檢查,其成功更改,除了在殼!我應該退出然後重新加載 – mohd

回答

2

這只是事務隔離。 shell會話在單個事務中工作,不會從外部看到更新。只需退出shell並重新加載,就會看到更新的密碼。

+0

在我的情況下,我希望在不退出的情況下獲得效果,因爲我使用ftp服務器(pyftpdlib)使用django身份驗證,如果任何用戶更改了密碼,這意味着我應該每次都重新啓動服務器! – mohd