我有一個包含3個文件字段的模型,並在調用.save時對其進行處理。問題在於保存對象的任何FileField觸發器.save。我能做些什麼來一次保存多個FileField?一次在模型中保存兩個文件filelds
class Record(Model):
name = CharField(max_length=30)
audio = FileField(upload_to=settings.AUDIO_ROOT)
alt_audio = FileField(upload_to=settings.AUDIO_ROOT, null=True)
sample = FileField(upload_to=settings.AUDIO_ROOT, null=True)
def save(self, *args, **kwargs):
convert_files(self)
super(Record, self).save(*args, **kwargs)
當音頻被上傳(MP3),它是從MP3轉換爲OGG(或反之亦然),其保存到alt_audio和樣品:
def convert_files(record):
...
record.alt_audio.save(os.path.basename(convert_to), File(open(convert_to)))
record.sample.save(os.path.basename(sample_name), File(open(sample_name, 'r')))
的問題是,alt_audio.save
觸發器返回record.save
。如果它不是空的,我添加了每個文件字段的檢查。我也想通過稍後將它提供給芹菜服務器來推遲這一行動。有沒有辦法不觸發.save多次?