Прежде всего, вы не понимаете, что такое FileField
. Это на самом деле для хранения и доступа к самого файла. Таким образом, ваше поле должно называться не filename
, а file
или audio_file
или что-то, что описывает файл .
Таким образом, когда у вас есть экземпляр AudioPart
, например, part
, вы можете напрямую получить доступ к файлу: part.filename
- это файл в вашем коде, а не его имя.
Если вы хотите, чтобы метод обращался только к имени файла, задайте @property
для вашей модели:
import os
class AudioPart(Model):
file = FileField(...)
...
@property
def filename(self):
return os.path.basename(self.file.name)
, тогда part.file
- это файл, а part.filename
- это имя файла. Таким образом, вы можете read()
файл или вернуть его URL, чтобы люди могли загрузить его (part.file.url
) или манипулировать им другими способами.
По вашему мнению, вы можете просто l oop поверх ваших файлов добавить имя файла в список перед возвратом JSON.