如何从 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.py
或customized 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 上传的模板中显示图像