179
votes

How do I change some models name from "Categorys" to "Categories" on admin site in the new dev django version? In the old version (whithout admin sites and admin models) you could just do this; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

However - now setting verbose_name_plural inside my modeladmin based class does nothing. Anyone encouter the same issue?

2
It works for me in Django 1.1.1... Are you sure you're putting it inside the Meta nested class?rescdsk
yah, I just thought that new versions got rid of the inner Meta class inside the models. Apparently not - they just made things more complicated with Admin classes...Andriy Drozdyuk

2 Answers

322
votes

Well well, it seems like the Meta class approach still works. So placing a meta class inside your model will still do the trick:

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"

Note that we use the lower case here, as django is smart enough to capitalize it when we need it.

I find setting this option in model-class weird as opposed to the admin.py file. Here is the location in the dev docs where it is described:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural

29
votes

for that you need to add meta classes for models

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"

Bonus for your models admin in apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"