0
我有一個Django模型,需要一個音頻文件:子類的FileField Django的REST框架
class Thing(models.Model):
audio_file = AudioFileField( upload_to=audio_dir, blank=True, null=True)
photo_file = models.ImageField(upload_to=img_dir, blank=True, null=True)
...
其中AudioFileField
是執行一些驗證的FileField
一個子類:
class AudioFileField(models.FileField):
def validate(self, value, model_instance):
try:
if not (value.file.content_type == "audio/x-wav" or
value.file.content_type == "audio/amr" or
value.file.content_type == "video/3gpp"):
raise ValidationError(u'%s is not an audio file' % value)
except IOError:
logger.warning("no audio file given")
和audio_dir
回調設置路徑並重命名文件:
def audio_dir(instance, filename):
return os.path.join("audio", "recording_%s%s" % (
datetime.datetime.now().isoformat().replace(":", "-"),
os.path.splitext(filename)[1].lower()))
在Django REST框架中,ImageField
工作正常,但子類型AudioFileField
沒有。這是因爲子類serializers.FileField
不接受關鍵字參數upload_to
。
如何通過API公開相同的功能? audio_dir
回調對我來說尤其重要。
謝謝,但我需要一個''serializers.FileField''的子類,可以使用''upload_to''參數或類似的東西。我編輯了這個問題,使它(希望)更清楚。 – gozzilli 2013-03-04 18:56:13
好的,我會嘗試修復它 – catherine 2013-03-05 00:38:59