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


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

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

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

docker-composeでDjangoとPostgreSQLを連携した構築手順(VPS環境)

2020年4月6日

「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管理アクセスユーザーの作成は以上となります。


関連記事


コメントを残す

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

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

ABOUTこの記事をかいた人

blank

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