我在模型管理类上有一个方法,可以在list_display上获取反向关系字段的数据,但是当我在list_editable中也添加该字段时,也会出现错误
<class 'app.admin.CustomerAdmin'>: (admin.E121) The value of 'list_editable[2]' refers to 'box_status', which is not an attribute of 'app.Customer'.
这些是模型管理类
@admin.register(Customer)
class CustomerAdmin(AbstractModelAdmin):
class Media:
list_display = ['name', 'email', 'phone', 'stylist', 'box_schedule', 'drop_off_step',
'box_status', 'age''created_at', 'payment_status']
list_display_links = ('name', 'email')
search_fields = ['name', 'email', 'id']
list_editable = ['stylist', 'payment_status', 'box_status']
下面是我从相关模型字段获取的box_status方法。
def box_status(self, obj):
det = list(obj.box.values_list('box_status', flat=True))
return det
这在list_display中有效,但在list_editable中系统错误。
答案 0 :(得分:1)
例如,您正在使用可编辑列表中的方法。 Django仅允许在list_editable中编辑模型字段。不是从方法中“返回”。
答案 1 :(得分:0)
在list_editable中,您只能指定模型字段。 https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_editable