我有一个模型,在 save 方法中有一些自定义。
def SomeModel(models.Model):
def save(self, *args, **kwargs):
if not kwargs.pop('skip_expensive_processing', False):
do_expensice_processing()
return super(SomeModel, self).save(*args, **kwargs)
基本上,每当调用 save 方法时,我都希望执行一些昂贵的过程
但是当一起做一堆保存(大量导入)时,我不想对每次保存都进行昂贵的处理。在保存所有对象后,我想执行一次昂贵的过程。
在批量保存的情况下,对象是通过ModelForm
. 我需要找到一些方法来修改表单,以便当表单调用 save 方法时SomeModel
,它会传递该skip_expensive_processing
关键字 arg。我该怎么做呢?
我浏览了该ModelForm.save()
方法的源代码,但它似乎并没有以一种过于直接的方式调用模型保存方法......