Django-通用ModelAdmin定义

时间:2018-12-06 20:25:42

标签: python django

这是一个新手问题。

我想在管理员视图中显示多个模型。当查看模型的记录列表时,我想显示所有模型的字段。 我想定义一个通用的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中获取值?

1 个答案:

答案 0 :(得分:0)

这不是正确的方法。您不应为管理类覆盖__init__

相反,定义get_list_display并访问self.model

def get_list_display(request):
    return [field.name for field in self.model._meta.get_fields()]