”Djangoで作ったサイトの管理者パスワードを忘れた”、または”一般ユーザーのパスワードを忘れてログインできなくなった”という事が時々あります。
Djangoには簡単にパスワードをリセットする機能があります。
今回は、ユーザー名を知っている場合にパスワードをリセットする方法と、ユーザー名も忘れてしまった場合の対処法も解説します。
ユーザー名が判明している場合
以下のコマンドでユーザーのパスワードを変更できます。<user_name>を変更したいユーザー名に置き換えてください。
指定したユーザーの新しいパスワードを2回入力するように求められます。
$ python manage.py changepassword <user_name>
注)changepasswordコマンドは、django.contrib.authをインストールしている必要があります。(設定のINSTALLED_APPSに追加)
ユーザー名もパスワードも忘れた場合
ユーザー名もパスワードも忘れた場合は以下の手順でパスワードを変更します。
- ログインできる管理者ユーザーを作成(任意)
- dbshellコマンドを実行しDBに接続
- ユーザーを検索するsqlコマンドを実行し、ユーザー名を控える
- changepasswordコマンドを実行しパスワードを変更する
一人もログインできない場合は管理者ユーザーを作成します。
$ python manage.py createsuperuser
dbshellコマンドを実行します。
$ python manage.py dbshell
sqlコマンドを実行し、ユーザー名を控えます。
sqlコマンドは利用しているDBに応じて変更してください。下記のコマンドはsqliteやMySQLで使えます。
select * from accounts_user;
changepasswordコマンドを実行し、パスワードを変更します。
$ python manage.py changepassword <user_name>
コメントを残す