【Django】管理画面のログインユーザー設定方法

Djangoを正常にログインした後は、管理画面へのログインを実施します。
初期の状態では、ログインユーザーが作成されていないので、Django起動後は管理ユーザーのID・パスワードを作成します。

今回は、Django管理画面のログインユーザー作成の方法をまとめました。

Django+pstgresSQLのDockerコンテナでの起動手順は以下を参考にしてください。

「Django」管理画面へのログインユーザーを作成する方法

Django管理画面へのログインユーザーの作成は以下のコマンドを実行します。

Windows

$ python manage.py createsuperuser

MacOS or LinuxOS

$ python3 manage.py createsuperuser

実際にコマンドを叩くと、ユーザーネームの作成、パスワードの作成(確認を含め2回実行)をします。
最後に、「successfully.」となればログインユーザーの作成完了となります。

$ python3 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: test@gmail.com
Password:
Password (again):
Superuser created successfully.
$

Django管理画面にアクセス

上記でログイン画面のユーザーIDを作成したら実際に、Djangoへのログインをしてみます。

作成したユーザーIDでログインできると以下のような画面に切り替われば成功です。

Djangoユーザー作成時にエラーが発生した場合

Django管理ユーザー作成時に以下のようなエラーが発生する場合があります。

$ python3 manage.py createsuperuser

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
                                                             ^


The above exception was the direct cause of the following exception:

----中略

django.db.utils.ProgrammingError: relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
                                                             ^
$

原因はデータベースの同期が取れていないことが原因のようです。
対処法は簡単です。

「migrate」コマンドを実行し、データベースを一度同期させることで事象は解消されます。

$ python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying sessions.0001_initial... OK
$

「migrate」コマンドが成功すれば再度、ログインユーザーを作成してください。

また、dockerコンテナでDjangoを起動させた方は、別途「Django」をインストールして、「migrate」コマンドを実行しましょう。

$ pip install django

Django管理アクセスユーザーの作成は以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!