make model __unicode__方法返回多列

时间:2014-09-01 05:54:09

标签: python django

如何让Django模型__unicode__方法将多个值返回到多个列?

2 个答案:

答案 0 :(得分:4)

只需添加到以下类:

def __unicode__(self):
    return '%s %s' % (self.value1, self.value2)    

答案 1 :(得分:3)

你不能。

您可以做的是创建另一种方法并在list_display中添加该方法。从其documentation开始,list_display可以采用以下四种值:

  1. 模型的字段
  2. 将采用模型实例的可调用(函数或lambda)。
  3. 模型类的属性名称(可以是模型类中的任何函数)。
  4. ModelAdmin
  5. 的属性名称

    对于您的情况,我们需要在models.py中使用#3:

    class SomeModel(models.Model):
       name = models.CharField(max_length=300)
       # etc, etc.
    
       def __unicode__(self):
           return unicode(self.name)
    
       def something_else(self):
           return self.another_field
    

    admin.py

    class SomeModelAdmin(admin.ModelAdmin):
        list_display = ['__unicode__', 'something_else']
    
    admin.site.register(SomeModel, SomeModelAdmin)