2016-08-02 86 views
0

我在Django管理网站list_display自定义方法中的示例,我得到一个错误'colored_name()只需要1个参数(2给出)',是什么问题?如何使用方法添加管理自定义字段

class Person(models.Model): 
    first_name = models.CharField(max_length=50) 
    last_name = models.CharField(max_length=50) 
    color_code = models.CharField(max_length=6) 

def colored_name(self): 
    return format_html(
     '<span style="color: #{};">{} {}</span>', 
     self.color_code, 
     self.first_name, 
     self.last_name, 
    ) 

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('first_name', 'last_name', 'colored_name') 
+0

什么是您的'人'管理代码? –

+0

切勿将您的代码发布在评论区,请修改您的问题并附上相关代码。你也可以分享回溯吗? –

+0

请发布完整的追溯并修复您的代码缩进。 – Alasdair

回答

1

你应该定义colored_namePersonAdmin classPerson Model,因为它是用于管理面板的方法。此外,它还会收到代表person实例的obj参数。

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('first_name', 'last_name', 'colored_name') 

    def colored_name(self, obj): 
     return format_html(
      '<span style="color: #{};">{} {}</span>', 
      obj.color_code, 
      obj.first_name, 
      obj.last_name, 
     ) 
相关问题