このチャプターの目次

ユーザーを管理画面で操作できるようにします。

表示を見やすいようにカスタマイズしています。

管理画面からもユーザーが登録できるようになります。

accounts/admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import get_user_model

User = get_user_model()


class UserAdminCustom(UserAdmin):
  # ユーザー詳細
    fieldsets = (
        (None, {
            'fields': (
                'name',
                'email',
                'password',
                'is_active',
                'is_staff',
                'is_superuser',
            )
        }),
    )
    # ユーザー追加
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': (
                'name',
                'email',
                'password1',
                'password2',
                'is_active',
                'is_staff',
                'is_superuser',
            ),
        }),
    )

    # ユーザー一覧
    list_display = (
        'id',
        'name',
        'email',
        'is_active',
    )

    list_filter = ()
    # 検索
    search_fields = ('email',)
    # 順番
    ordering = ('id',)


admin.site.register(User, UserAdminCustom)

データベース構築

モデルを変更したら、下記コマンドで必ずデータベースの構築が必要になります。

(myvenv) ~$ python3 manage.py makemigrations
(myvenv) ~$ python3 manage.py migrate

管理者作成

管理者を作成します。

(myvenv) ~$ python3 manage.py createsuperuser