我试图对通过POST上传到我的tastypie API的文件进行一些处理。这是我的模型和我的资源。
资源
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 obj_create(self, bundle, **kwargs):
bundle = super(TagResource, self).obj_create(bundle, **kwargs)
bundle.obj = Tag(track=bundle.data.get('track'))
bundle.obj.save()
#the following line is the processing intended.
result = recognize(bundle.obj.track)
bundle.data['tag'] = result
return bundle
模型
class Tag(models.Model):
track = models.FileField(upload_to=settings.UPLOAD_DIR, max_length=250)
def __unicode__(self):
return self.track.url
似乎创建了新对象,但上传的文件永远不会被保存。我推断,因为向api发出get请求会显示新创建的Tag对象,但track为null。
15:Object
id:101
resource_uri:""
track:null
我做错了什么?
提前谢谢。
答案 0 :(得分:0)
我终于开始工作了。好像我没有使用CURL正确发布。我现在用它来上传文件:
curl -F "track=@/path/to/file.mp3" http://1**.**.***.**:8000/api/tag/
之前路径丢失之前的'@'。添加修复它。