Django: How to reset password in Django admin page.
โอ๊ว…ทำยังไงดี ลืม password admin ที่จะเข้าไปใน Django web framework (http://localhost:8000/admin/login/)
นี่คือวิธีแก้นะคับ มี 2 วิธีนะคับ
- ในกรณีที่เราจำ user ได้นะคับให้ใช้ option (changepassword) ในการเปลี่ยนเป็นรหัสใหม่นะคับ ด้วย format แบบนี้
manage.py changepassword *username*
python manage.py changepassword admin2 # เมื่อ admin2 คือ username นะคับ
จากนั้นระบบจะให้เราใส่ password ตัวใหม่ได้เลย 2 ครั้งตามลำดับ และตามข้อกำหนดคับ
2. ในกรณีที่เราต้องการเปลี่ยนผ่าน command shell ซึ่งเราจะเปลี่ยนได้เพียงในส่วนของ admin หลักเท่านั้นนะคับ เพราะถ้าเราเข้า admin หลักได้ก็จะไปแก้ไขของทุกคนได้หมดอยู่แล้ว
ก่อนอื่นให้ shell เข้าไปก่อน
python manage.py shell # shell เข้าไปก่อนนะคับfrom django.contrib.auth.models import User # ดึง User model มาแก้ไข>>> user = User.objects.get(username='admin2') # username ที่มีในระบบนะ
>>> user.set_password('admin')
>>> user.save()
>>> quit()# .get ใช้กับค่าที่เป็น unique เท่านั้น ส่วน .filter ใช้กับค่าจำนวนมากๆได้เลย
ในกรณีที่เราไม่ทราบ username สามารถดูได้จาก User model นะคับด้วยคำสั่ง
>>> User.objects.all()<QuerySet [<User: admin2>, <User: atthana>]> # มี 2 user อยู่ตอนนี้
เท่านี้เราก็จะ reset password ของ admin เป็นตัวใหม่แล้ว แต่ทั้งนี้ทั้งนั้นการเปลี่ยนด้วย method เหล่านี้จะใช้ได้ในกรณีที่เรายังไม่ได้ customize ในส่วน User model นะคับ ถ้าเราแก้ไขแล้วอาจจะเปลี่ยนไม่ได้
แล้วพบกันใหม่คับ
Referrence: https://docs.djangoproject.com/en/3.1/topics/auth/default/#changing-passwords