如何在Django Admin中翻译模型标签?

50
我可以翻译 Django Admin,除了模型标签,因为我不知道如何在 Django Admin 中翻译模型标签。
那么,在 Django Admin 中如何翻译模型标签呢?
4个回答

73

请查看Meta选项中的verbose_nameverbose_name_plural,两者均可翻译。


8
但是这只会改变主页上的名称,当您单击链接(类别)时,顶部标题将显示之前提到的类别名称。verbose_name 只会更改主页上的标题。 - ha22109
1
在Django 1.11中,这确实是正确的答案。verbose_name出现在管理主页和每个子页面上。 - Patrick Keenan

21

您应该在所有模型的Meta中使用实用程序

from django.db import models
from django.utils.translation import ugettext_lazy as _

class Book(models.Model):
    ...

    class Meta:
        verbose_name = _("My Book")
        verbose_name_plural = _("My Books")

3
谢谢你的回答,这对我帮助很大。 - Cool Breeze

1
你应该使用gettext_lazy()并将其设置为verbose_nameverbose_name_plural来翻译Django Admin中的模型标签,如下所示。*你可以查看我的答案详细解释如何在Django中进行翻译。
# "models.py"

from django.db import models
from django.utils.translation import gettext_lazy as _

class Person(models.Model):
    ...

    class Meta:
        verbose_name = _("person") # Here
        verbose_name_plural = _("persons") # Here

0
你还可以重写admin.ModelAdmin来在管理员界面中自定义模型名称,而不改变模型元数据。
def __init__(self, model: type, admin_site: AdminSite) -> None:
        super().__init__(model, admin_site)
        self.opts.verbose_name = 'your custom model name'
        self.opts.verbose_name_plural = 'your custom title plural'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接