У меня есть модель с 3 файловыми полями, и я манипулирую ими при вызове .save.Проблема в том, что сохранение любого FileField вызывает .save объекта.Что я могу сделать, чтобы сохранить несколько FileFields одновременно?
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 и sample:
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 несколько раз?