DjangoのAdmin画面にModelを表示する方法。日本語化と「s」付き表示の解消まで
DjangoのAdmin(管理)画面にモデルを表示する方法と、表示名を日本語化する方法をまとめて解説します。
Admin画面にModelを表示する:admin.site.register
アプリの admin.py で admin.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_name と verbose_name_plural に同じ値を指定するのが定石です。
まとめ
| やりたいこと | 方法 |
|---|---|
| Admin画面にモデルを表示 | admin.site.register(モデル) |
| 表示名を日本語化 | Meta.verbose_name |
| 「s」付き表示の解消 | Meta.verbose_name_plural |
Admin画面を含む認証まわりの構築はdjango-allauth入門ガイドも参考にしてください。