Django ユーザーや管理者のパスワードをリセットする方法

”Djangoで作ったサイトの管理者パスワードを忘れた”、または”一般ユーザーのパスワードを忘れてログインできなくなった”という事が時々あります。

Djangoには簡単にパスワードをリセットする機能があります。

今回は、ユーザー名を知っている場合にパスワードをリセットする方法と、ユーザー名も忘れてしまった場合の対処法も解説します。

ユーザー名が判明している場合

以下のコマンドでユーザーのパスワードを変更できます。<user_name>を変更したいユーザー名に置き換えてください。

指定したユーザーの新しいパスワードを2回入力するように求められます。

$ python manage.py changepassword <user_name>

注)changepasswordコマンドは、django.contrib.authをインストールしている必要があります(設定のINSTALLED_APPSに追加)

ユーザー名もパスワードも忘れた場合

ユーザー名もパスワードも忘れた場合は以下の手順でパスワードを変更します。

  1. ログインできる管理者ユーザーを作成(任意)
  2. dbshellコマンドを実行しDBに接続
  3. ユーザーを検索するsqlコマンドを実行し、ユーザー名を控える
  4. 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>
スポンサーリンク
スポンサーリンク