【问题标题】:Accessing file uploaded via Tastypie访问通过 Tastypie 上传的文件
【发布时间】:2014-10-23 14:08:30
【问题描述】:

我正在尝试对通过 POST 上传到我的美味派 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

我做错了什么?

提前谢谢你。

【问题讨论】:

    标签: python django tastypie


    【解决方案1】:

    我终于让它工作了。好像我没有使用 CURL 正确发布。我现在用它来上传文件:

    curl -F "track=@/path/to/file.mp3" http://1**.**.***.**:8000/api/tag/
    

    路径之前的“@”之前丢失了。添加修复它。

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多