django的admin用戶被我多動症一樣的測試,給密碼弄丟了,需要重置。
從數據庫重置的可能性為0,因為django對於密碼有保護策略。考慮從運行程序的地方進行重置:
1.在程序的文件夾下,執行這樣的命令,進行shell窗口:
1 python manage.py shell
2.對admin用戶進行修改密碼:
1 from django.contrib.auth.models import User 2 user =User.objects.get(username='admin') 3 user.set_password('new_password') 4 user.save()
結果,登錄admin成功。
總結:我有兩點疑問:
首先,如果連用戶名admin也忘記怎么辦?
1 from django.contrib.auth.models import User 2 user1 = User.objects.filter(is_superuser = True) 3 user2 = User.objects.filter(is_superuser = True, is_staff = True) 4 print user1, user2
上面第二句選擇了所有的超級用戶,可以選擇其中一個進行修改密碼。
第三句選擇了是staff並且是superuser的員工。
注意:默認情況下,只有是staff和superuser的雙重身份才能進去django自帶的admin管理后台並進行修改和管理。
當只是staff的時候,只能進入后台,但是不能進行任何操作。當只是superuser狀態時,則無法進入后台。
其次,這樣的操作允許。意味着,如果知道程序放在哪個路徑下面,就可以修改admin的用戶密碼,這是否不安全?雖然這樣的操作,給我們這些記憶力不好的人留下了“后路”。忽然想起來了mysql不能對root修改密碼的問題