如何从 django 管理面板中删除多余的“s”?

Posted

技术标签:

【中文标题】如何从 django 管理面板中删除多余的“s”?【英文标题】:How can i remove extra "s" from django admin panel? 【发布时间】:2015-11-09 22:20:06 【问题描述】:

我对在 django admin 中的类名后添加的额外“s”感到非常恼火,例如我的 model.py 中的类“About”在管理部分变成了“Abouts”。而且我希望它不要添加额外的's'。这是我的 model.py 文件-

class About(models.Model):
        about_desc = models.TextField(max_length=5000)

        def __unicode__(self):              # __str__ on Python 3
                return str(self.about_desc)

请任何人建议我 django 如何解决我的问题。

【问题讨论】:

Django fix Admin plural 的可能重复项 尽管您的问题已在下面得到解答,但此信息在 django 教程中很容易获得。在你做一点研究之前不要生气。 【参考方案1】:

model.pycustomized model file 内部,在模型类中添加类元。 如果未提及,则会在模型类名称的末尾添加一个额外的“s”,该名称将在 Django 管理页面中可见。

class TestRoles(model.Model): 
   class Meta: verbose_name_plural = 'TestRoles'

【讨论】:

【参考方案2】:

查看 django 文档中的Model Meta。

在模型中,您可以添加 class Meta,这允许您的模型使用其他选项来处理单数和复数命名等事情。

这可以通过以下方式使用(在英语中我们没有羊)所以verbose_name_plural 可以用来覆盖 djangos 对单词复数的尝试:

class Sheep(model.Model):
    class Meta:
        verbose_name_plural = 'Sheep'

【讨论】:

【参考方案3】:

您可以在模型中添加另一个名为 Meta 的类来指定复数显示名称。例如,如果模型的名称是Category,则管理员显示Categorys,但通过添加Meta 类,我们可以将其更改为Categories

我已更改您的代码以解决此问题:

class About(models.Model):

    about_desc = models.TextField(max_length=5000)

    def __unicode__(self):              # __str__ on Python 3
        return str(self.about_desc)

    class Meta:
        verbose_name_plural = "about"

更多Meta选项,请参考https://docs.djangoproject.com/en/1.8/ref/models/options/

【讨论】:

真的救了我的命!

以上是关于如何从 django 管理面板中删除多余的“s”?的主要内容,如果未能解决你的问题,请参考以下文章

如何停止在 Django 2.* 管理面板中记录最近的操作和历史记录?

如何在从管理面板 Django 1.3 上传的模板中显示图像

Django 1.6 管理面板自定义

如何从 Postgres 中的字符串中删除 '\t'、'\n' 或多余的空格?

Cadence中如何删除多余的机械孔

Django,如何将变量从 Django 管理员传递到模板?