djangoの管理者パスワードを再設定する

django の管理者パスワードを忘れてしまったときに、コマンドラインから再設定する方法の備忘録

stackoverflow によると幾つか方法が提案されているので主要な2つを紹介します。

環境

  • django 1.9

方法

changepassword コマンドを使う方法

% manage.py changepassword USERNAME

django shell を利用する方法

標準のUserモデルを使っているときは次の通り。

from django.contrib.auth.models import User
// superuser の一覧を取得する
User.objects.filter(is_superuser=True) 
u = User.objects.get(username='your username')
u.set_password('raw password')
u.save()

独自のモデル(たとえば、CustomUser.models に MyUser クラスを作っているとする)を利用するときは次の通り

from CustomUser.models import MyUser as User
usr = User.objects.get(username='your username')
usr.set_password('raw password')
from django.contrib.auth.models import User
// superuser の一覧を取得する
User.objects.filter(is_superuser=True)
u = User.objects.get(username='your username')
// パスワードリセット 
u.set_password('raw password')
// 保存
u.save()

参考

stackoverflow.com

Using the Django authentication system | Django documentation | Django