当对模型字段使用本地化的“选择”列表时,管理员不会在列表视图中显示翻译后的值。
简短的例子:
from django.utils.translation import ugettext_lazy as _
class OrderStates:
STATES = (
(STATE_NEW, _("New")),
(STATE_CANCELLED, _("Cancelled")), )
class Order(models.Model):
state = models.IntegerField(choices=OrderStates.STATES)
# ..
class OrderAdmin(admin.ModelAdmin):
list_display = [ 'id', 'state', 'address', 'user']
# ..
admin.site.register(Order, OrderAdmin)
编辑订单时,“新”和“已取消”的本地化版本正确显示在前端和管理表单中。但是在管理员列表视图中,我得到空白字段- 无论我切换到哪种语言,包括英语。列名很好。
这只发生在 Python 2.3 中(谈论小众问题)。选择在 Python 2.5 的任何地方都能正确显示。我也没有收到任何错误或警告。
尝试使用 ugettext 而不是 ugettext_lazy 作为选项,但没有成功。ugettext_noop 之类的作品 - 它至少显示原始英文版本而不是空白字段。
我做错了什么还是这是一个错误?