Django修复管理员复数

And*_*yuk 132 django django-admin

如何在新的dev django版本的管理站点上将某些型号名称从"Categorys"更改为"Categories"?在旧版本中(没有管理站点和管理模型)你可以这样做; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

但是 - 现在在我的基于modeladmin的类中设置verbose_name_plural什么都不做.有人问同样的问题吗?

And*_*yuk 243

好吧,似乎Meta类方法仍然有效.因此,在模型中放置元类仍然可以解决问题:

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"
Run Code Online (Sandbox Code Playgroud)

请注意,我们在这里使用小写,因为django足够聪明,可以在需要时将其大写.

我发现在模型类中设置此选项很奇怪而不是admin.py文件.以下是开发文档中描述的位置:http:
//docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural

  • 在模型类(而不是admin.py)中设置它的想法归结为[DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself) - 仅仅因为管理员是唯一的事情 - 使用这个关于你的模型的信息的盒子并不意味着它总是如此.希望如果您在自己的代码中某处需要模型的复数名称,您将使用此属性而不是重新发明轮子. (15认同)

Sau*_*tel 7

为此,您需要为模型添加元类

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"
Run Code Online (Sandbox Code Playgroud)

apps.py中的模型管理员奖金

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Run Code Online (Sandbox Code Playgroud)

  • 根据 django-admin 仪表板中的默认模型,名称应以小写字母开头。 (4认同)