我有一个通用的 ModelAdmin,admin.py它替换了管理界面中的一些小部件。它作为我所有其他 ModelAdmins 的超类。它看起来像这样:
#in mainapp/admin.py:
from django.contrib import admin
from django.db import models
from suit.widgets import SuitSplitDateTimeWidget
class SuitedUpAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DateTimeField: {
            'widget': SuitSplitDateTimeWidget
        },
        #(...)
    }
    #(...)
在另一个 Django 应用程序中,我SuitedUpAdmin用作 ModelAdmin 的超类,它也尝试替换一些小部件:
#in events/admin.py:
from django.contrib import admin
from django.db import models
from suit.widgets import AutosizedTextarea
from mainapp.admin import SuitedUpAdmin
class LocationAdmin(SuitedUpAdmin):
    formfield_overrides = {
        models.TextField: {'widget': AutosizedTextarea},
    }
    #(...)
formfield_overrides问题是,当我为in分配一个新值时LocationAdmin,我丢失了从SuitedUpAdmin. 我该如何处理?我目前使用的解决方案是在LocationAdmin.render_change_form方法中替换小部件实例,但我正在寻找更优雅和可读的选项。我想避免为此使用 ModelForms。期待您的建议!