我正在尝试使用Django 1.8和tastypie上传图像

时间:2016-05-24 07:31:45

标签: tastypie django-1.8

我正在使用Django 1.8,tastypie 0.13.0版本, 在发出POST请求时会出错。 UnsupportedFormat:指示的格式' application / form-data'没有可用的反序列化方法。请检查序列化程序中的formatscontent_types

class MultiPartResource(object):
    def deserialize(self, request, data, format=None):
    if not format:
        format = request.Meta.get('CONTENT_TYPE', 'application/json')
    if format == 'application/x-www-form-urlencoded':
        return request.POST
    if format.startswith('multipart/form-data'):
        data = request.POST.copy()
        data.update(request.FILES)
        return data
    return super(MultiPartResource, self).deserialize(request, data, format)

    def patch_detail(self, request, **kwargs):
        if request.META.get('CONTENT_TYPE', '').startswith('multipart/form-     data') and not hasattr(request, '_body'):
            request._body = ''
        return super(MultipartResource, self).patch_detail(request, **kwargs)

2 个答案:

答案 0 :(得分:0)

请看一下这个问题:https://github.com/django-tastypie/django-tastypie/issues/42#issuecomment-5485666

关于文件上传支持以及如何处理multipart / form-data。

另外,我建议你实现这个tastypie字段https://gist.github.com/klipstein/709890来解决这个问题。

希望这对你有用。

答案 1 :(得分:0)

使用tastypie-extras MultipartResourceMixin

from tastypie_extras import MultipartResourceMixin

class MyResource(MultipartResourceMixin, ModelResource):
    ....

测试了Django 1.4和1.8以及Tastypie 0.9.12和0.13.0