关于django:保存模型时超过了最大递归深度

Maximum recursion depth exceeded when saving model

我有几个modeladmin类,我想在保存模型时执行相同的操作,因此为此创建了mixin对象:

1
2
3
4
5
class SaveModelMixin(object):
    def save_model(self, request, obj, form, change):
        if obj.is_executed and 'is_executed' in obj.changed_data:
            obj.date_execution = datetime.date.today()
        super(self.__class__, self).save_model(request, obj, form, change)

当我试图将对象保存到admin中时,这个方法只是一次又一次地运行它自己,我不知道为什么。


似乎您的super()调用不正确,请尝试以下操作:

1
super(SaveModelMixin, self).save_model(request, obj, form, change)

参见这里的解释:如何避免使用super()进行无限递归?

还可以看到:

  • django模型:如何使用mixin类覆盖django模型以实现save等函数