DjangoのAdmin画面にModelを表示する方法。日本語化と「s」付き表示の解消まで

DjangoのAdmin画面にModelを表示する方法。日本語化と「s」付き表示の解消まで

DjangoのAdmin(管理)画面にモデルを表示する方法と、表示名を日本語化する方法をまとめて解説します。

Admin画面にModelを表示する:admin.site.register

アプリの admin.pyadmin.site.register にモデルを渡すと、Admin画面に表示されます。

from django.contrib import admin
from .models import SampleModel

admin.site.register(SampleModel)

これだけで、Admin画面から対象モデルのデータの一覧表示・追加・編集・削除ができるようになります。

Modelを日本語(別名)で表示する:verbose_name

モデルの Meta クラスに verbose_name を指定すると、Admin画面での表示名を日本語(任意の別名)にできます。

class User(models.Model):
    user_id = models.AutoField(primary_key=True, db_column='user_id')
    username = models.CharField(max_length=100,
                                null=False,
                                blank=False,
                                db_column='username')

    class Meta:
        verbose_name = 'ユーザ'

「s」付き表示の理由と解消方法:verbose_name_plural

verbose_name だけを指定すると、一覧では「ユーザs」のように末尾へ「s」が付いて表示されてしまいます。

これはDjangoがデフォルトでモデル名+sを複数形の表示名として使うためです。verbose_name_plural(pluralは「複数形」の意味)を指定すれば解消できます。

class User(models.Model):
    user_id = models.AutoField(primary_key=True, db_column='user_id')
    username = models.CharField(max_length=100,
                                null=False,
                                blank=False,
                                db_column='username')

    class Meta:
        verbose_name = 'ユーザ'
        verbose_name_plural = 'ユーザ'

日本語には複数形の変化がないため、verbose_nameverbose_name_plural に同じ値を指定するのが定石です。

まとめ

やりたいこと方法
Admin画面にモデルを表示admin.site.register(モデル)
表示名を日本語化Meta.verbose_name
「s」付き表示の解消Meta.verbose_name_plural

Admin画面を含む認証まわりの構築はdjango-allauth入門ガイドも参考にしてください。

技術ブログ一覧へ戻る