Django管理画面のモデルオブジェクトの表示名を変更する

Created 2018年12月21日16:07
Updated 2019年2月3日18:42
Categories Django Python

Djangoの管理画面は必要な機能が自動生成されるためかなり便利ですが、デフォルトだと表示名がmodels.pyに書いたクラス名になってしまい分かりづらいです。

管理画面での表示名をデフォルトから変更するには、以下のようにModelを記述します。

class Album(models.Model):
    title = models.CharField(verbose_name="アルバム名", max_length=512)
    songs = models.ManyToManyField(Song, verbose_name="収録曲")
    released = models.DateField(verbose_name="リリース日", null=True, blank=True)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = "アルバム"
        verbose_name_plural = "アルバム"

def __str__(self):はManyToManyFieldなどで表示される文字列です。デフォルトだとIDが表示されるため非常に分かりづらいですが、今回はアルバムのタイトルを表示するように変更しています。

続いて内部クラス(class Meta)の内容ですが、verbose_nameおよびverbose_name_pluralは管理画面の大項目で表示される文字列です。今回は日本語で”アルバム”としています。

コメントを投稿

コメント