Скорее всего, ваша проблема разрешима без исправлений обезьян, что часто может иметь непредвиденные последствия.
Как вы регистрируете модели у администратора django?
Если вы используете этот подход:
admin.site.register(FooModel) #uses generic ModelAdmin
У вас есть проблема с необходимостью изменить это на множество шаблонных экземпляров подклассов NewModelAdmin, которые будут выглядеть следующим образом:
class FooModelAdmin(NewModelAdmin):
pass #does nothing except set up inheritance
admin.site.register(FooModel, FooModelAdmin)
Это действительно многословно и может потребовать много времени для реализации, если у вас много моделей, поэтому сделайте это программно, написав функцию-обертку:
def my_admin_register(model):
class _newmodeladmin(ModelAdmin):
def your_overridden_method(*args, **kwargs):
#do whatever here
admin.site.register(model, _newmodeladmin)
Затем вы можете использовать это так:
my_admin_register(FooModel)