当使用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'))
所以问题是:
如何翻译我的功能名称?我在哪里放_('彩色名字')?
答案 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)