【问题标题】:How to translate function names in the Django admin?如何在 Django 管理员中翻译函数名称?
【发布时间】:2011-07-05 11:49:05
【问题描述】:

当使用http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display 中描述的 list_display 时,您不仅可以显示字段,还可以显示自定义可调用对象:

def colored_name(self):
    return '<span style="color: #%s;">%s %s</span>' % (self.color_code, self.first_name, self.last_name)
colored_name.allow_tags = True

然后像这样使用它:

list_display = ('first_name', 'last_name', 'colored_name')

由于 first_name 和 last_name 是普通字段,我们可以这样翻译它们:

first_name = models.CharField(_('first name'))
last_name = models.CharField(_('last name'))

所以问题是:

如何翻译我的函数名称?我应该把我的 _('colored name') 放在哪里?

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    您链接到的页面上的示例显示可调用对象可以具有属性short_description,这是用作列标题的字符串。我还没有检查过,但我强烈怀疑如果您将其设置为可翻译的字符串,那么它将起作用。

    def colored_name(self):
        return '<span style="color: #%s;">%s %s</span>' % (self.color_code, self.first_name, self.last_name)
    colored_name.allow_tags = True
    colored_name.short_description = _("Colored Name")
    

    【讨论】:

    • 这很明显,我以某种方式完全跳过了它。非常感谢 - 这就像一个魅力。
    【解决方案2】:

    它是一个函数(“可调用”),所以正确的语法应该是

    list_display = ('first_name', 'last_name', colored_name)
    

    【讨论】:

    • 这应该是一条评论,因为它没有回答问题。
    • 我刚刚检查过 - 正确的语法是 'colored_name',即使它是可调用的。没有''就不行。
    猜你喜欢
    • 2013-01-02
    • 2010-11-11
    • 2013-01-28
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2013-05-22
    • 1970-01-01
    相关资源
    最近更新 更多