Django: How to reset password in Django admin page.

Grassroot Engineer
2 min readAug 4, 2020

--

โอ๊ว…ทำยังไงดี ลืม password admin ที่จะเข้าไปใน Django web framework (http://localhost:8000/admin/login/)

ใส่ยังไงก้อเข้าไม่ได้

นี่คือวิธีแก้นะคับ มี 2 วิธีนะคับ

  1. ในกรณีที่เราจำ user ได้นะคับให้ใช้ option (changepassword) ในการเปลี่ยนเป็นรหัสใหม่นะคับ ด้วย format แบบนี้
    manage.py changepassword *username*
python manage.py changepassword admin2 # เมื่อ admin2 คือ username นะคับ

จากนั้นระบบจะให้เราใส่ password ตัวใหม่ได้เลย 2 ครั้งตามลำดับ และตามข้อกำหนดคับ

เท่านี้ก็จะได้ password ใหม่ของ admin2 แล้วคับ

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

--

--

Grassroot Engineer
Grassroot Engineer

Written by Grassroot Engineer

ATM engineer who is interested in CODING and believe in EFFORT. — https://grassrootengineer.com

No responses yet