【问题标题】:Change model class name in Django admin interface [duplicate]在 Django 管理界面中更改模型类名称 [重复]
【发布时间】:2011-12-03 16:07:33
【问题描述】:

可能重复:
Verbose name for admin model Class in django

我有一个模型,其类如下:

class Anh_chi_tiet(models.Model):
    du_an       = models.ForeignKey(Du_an)
    title       = models.CharField(max_length=120)
    url         = models.ImageField(upload_to='images')
    url_detail  = models.ImageField(upload_to='images')

当我进入管理界面时,我的 Anh_chi_tiet 类有一个标签:Anh_chi_tiets(添加了 s 后缀) 但我想将我的班级标签更改为“我的形象”

我该怎么做?

【问题讨论】:

  • verbose_name 就足够了,不要使用 verbose_name_plural
  • 如果你想要 CountryCountries 是必需的,因为默认情况下 django 在值的末尾添加 s 详细名称。因此,如果您不使用 verbose_name_plural,那么您将看到显示的模型名称为 Countrys
  • 如果您想更改名称的复数形式,可以使用verbose_name_plural = "stories",这样您就不会得到storys docs.djangoproject.com/en/3.0/ref/models/options/…

标签: django


【解决方案1】:

通过内部Meta 类,如documented

class Anh_chi_tiet(models.Model):
    # ... fields ...

    class Meta:
        verbose_name = 'My image'
        verbose_name_plural = 'My images'

【讨论】:

  • 如果您只想在管理员中更改它,而不是在任何地方使用它?
  • 没有关于如何在管理员中执行此操作的答案...
  • 你应该在模型而不是模型管理员上添加类 Meta!
  • 不幸的是,仅更改管理员中的名称不会发生,因为它定义为 'name': capfirst(model._meta.verbose_name_plural), (Django 3.1)
  • 如果您只想在管理员中更改此设置,您可以使用proxy model。见this answer in the duplicate question