如何使用方法添加管理自定义字段
问题描述:
我在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')
答
你应该定义colored_name
内PersonAdmin class
不Person 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,
)
什么是您的'人'管理代码? –
切勿将您的代码发布在评论区,请修改您的问题并附上相关代码。你也可以分享回溯吗? –
请发布完整的追溯并修复您的代码缩进。 – Alasdair