我跟随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 :(得分:1)
您应该在colored_name
内定义PersonAdmin class
而不是Person Model
,因为它是用于管理面板的方法。此外,它还会收到表示obj
实例的person
参数。
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,
)