Мое приложение имеет конечную точку tastypie, которая получила почтовые запросы с файлом (не большой ... 40-70kb) и должна сохранить файл, а затем обработать его. Однако, кажется, файл никогда не сохраняется после загрузки и, таким образом, пытается получить файл после сохранения. Я читал во многих местах об этом, но, похоже, у tastypie нет ни одного стандартного способа сделать это. Вот мои модели и ресурсы:Tastypie не сохраняет загруженный файл
модели
class Tag(models.Model):
track = models.FileField(upload_to='tags/', max_length=250)
def __unicode__(self):
return self.track.url
api_resource
class TagResource(MultipartResource, ModelResource):
track = fields.FileField(attribute="track", null=True, blank=True)
class Meta:
queryset = Tag.objects.all()
resource_name = 'tag'
authorization = Authorization()
object_class = Tag
always_return_data = True
def dehydrate(self, bundle):
bundle.obj.save()
#the processing operation on the saved file
result = recognize(bundle.obj.track)
bundle.data['tag'] = result
return bundle
Когда я отправляю файл с Curl:
curl -F "track=/path/to/track/track.mp3" http://127.0.0.1:8000/api/tag/
я получаю ошибку :
SuspiciousFileOperation: Attempted access to '/path/to/track/track.mp3'
и при дальнейшем расследовании, я понял, что ошибка была вызвана намеченной операцией, работающей над URL исходного файла вместо URL загруженного файла в.
Что я делаю неправильно?