如何在Django管理员中翻译函数名称?

时间:2011-07-05 11:49:06

标签: django django-admin

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

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'))

所以问题是:

如何翻译我的功能名称?我在哪里放_('彩色名字')?

2 个答案:

答案 0 :(得分:14)

您链接到的页面上的示例显示可调用对象可以具有属性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")

答案 1 :(得分:-3)

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

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