我有一个包含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多次?