1. 程式人生 > >Django admin修改密碼

Django admin修改密碼

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修改密碼的問題