对于我的一些模型,Django-admin,在模型对象的索引中,而不是像正常那样显示__unicode__
方法的输出,它只显示模型的一个字段。
通常会出现以下情况:
class Meta:
ordering = ['name']
在我的模型中,然后会显示字段name
的值(即使还有__unicode__
方法),但并非总是如此,有时它只会显示__unicode__
所说的内容即使有一个Meta排序。
我所有的Unicode方法都很正常,例如:
def __unicode__(self):
return u'[%s] %s' % (self.field, self.name, )
我很困惑,为什么有时会使用字段而不是__unicode__
,我怎样才能让它始终使用__unicode__
方法?这是Django 1.3。这是Django中的错误吗?
答案 0 :(得分:2)
您可以使用ModelAdmin
课程中的list_display
选项自定义django管理员中显示的字段。
模型__unicode__
方法和Meta.ordering
选项对显示的字段没有任何影响。
如果未设置list_display
,则默认行为是显示包含每个对象的unicode字符串的单个列。
如果没有为您的模型显示unicode字符串,则听起来您已设置list_display
。例如,要显示名称字段而不是unicode字符串,您可以执行以下操作:
class MyModelAdmin(models.ModelAdmin):
list_display = ['name']
如果要显示unicode字符串和其他字段,只需在__unicode__
中加入list_display
。
class MyModelAdmin(models.ModelAdmin):
list_display = [`__unicode__`, 'name']