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()
調べましたが、モデル保存メソッドをあまりにも単純な方法で調整していないようです...