这是一个新手问题。
我想在管理员视图中显示多个模型。当查看模型的记录列表时,我想显示所有模型的字段。
我想定义一个通用的ModelAdmin子类,它将能够列出模型的所有字段。但是不确定如何将类对象传递给它。 admin.py
看起来像这样
class ModelFieldsAdmin(admin.ModelAdmin):
def __init__(self, classObj):
self.classObj = classObj
self.list_display = [field.name for field in classObj._meta.get_fields()]
admin.site.register(Candy, ModelFieldsAdmin)
admin.site.register(Bagel, ModelFieldsAdmin)
如何传递classObj(它将是Candy或Bagel的模型之一),并确保get_list_display()
从self.list_display
中获取值?
答案 0 :(得分:0)
这不是正确的方法。您不应为管理类覆盖__init__
。
相反,定义get_list_display
并访问self.model
:
def get_list_display(request):
return [field.name for field in self.model._meta.get_fields()]