読者です 読者をやめる 読者になる 読者になる

座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

Djangoの管理サイトでオブジェクトの複数形を正しく表示する

Python

Python 3.2 + Django 1.6での話題。

Djangoのモデル名は単数形でつける (慣習的なものだと思うけど)。管理サイトではモデ ルが複数形で表示されるが、モデル名によっては正しくない結果になることがある。 例えば Category というモデルが Categorys と表示されてしまう。

モデルの Meta オプション ? Django 1.4 documentation

Djangoはオブジェクトの複数名として、 s を付与した値を使うという決まりしか持っ ていないことが原因である。

正しく表示させたければモデルの Meta オプションで指定する。

class Category(models.Model):
    label = models.CharField(max_length = 30)
    description = models.CharField(max_length = 200)

    class Meta:
        verbose_name_plural = 'categories' # 小文字でよい

これで管理画面では、 Categories と表示されるようになる。

あまり必要性は感じないけど、ちょっと気になったので調べてみた。

広告を非表示にする