我的模型在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
创建对象。我需要找到一些方法来修改表单,以便当表单在SomeModel
上调用save方法时,它会使用skip_expensive_processing
关键字arg。我该怎么做?
我通过ModelForm.save()
方法的te来源,但它似乎没有以过于直接的方式调用模型保存方法......
答案 0 :(得分:0)
您可能不需要覆盖modelform的save
方法。您应该只能传递commit=True
,然后根本不会调用模型保存。