基本的な初期設定は前回で終わりましたが、今回のアプリではユーザーごとに申し込みしたセミナーを確認できたり、上司に承認依頼を出せるようにしたいと思っています。この場合、ユーザー情報に上司の情報をいれる必要があるため、django標準で用意されているUserモデルでは対応できず、カスタムユーザーを作成する必要があります。
カスタムユーザーを使用する場合は初回のmigrationよりも前に、関連するコードを作っておく必要があるので注意してください。
今回はユーザー認証関係を別のアプリで管理したいと思いますので、accountアプリを作成します。
python manage.py startapp account
次に、settings.pyのinstalled_appにaccountを追加します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'account', #追加
]
また、同じくsettings.pyのどこでも構いませんが、下記の設定を追記します。
AUTH_USER_MODEL = 'account.User'
続いてaccountのmodels.pyを下記のように編集します。
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
ここではまだ何もカスタマイズはせずに、django標準のAbstractUserをそのまま使っています。
新しくモデルを追加したので、続いて管理画面で編集できるようにadmin.pyで登録します。
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
これでコマンドプロンプトでマイグレーションとサーバーの起動をしてみましょう。
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
どうでしょうか?ちゃんと表示されましたか?
続いて管理画面に入れるように管理ユーザーを登録しておきましょう。
python manage.py createsuperuser
idとパスワードを聞かれますので入力していくと、登録完了です。
念のため再度runserverをして管理画面に入ってみましょう。
管理画面にはhttp://127.0.0.1:8000/admin/で入れますので、ここで先程設定したidとパスワードを入れてください。
ちゃんと入れれば完了です。