我正在使用Django 1.8,tastypie 0.13.0版本,
在发出POST请求时会出错。 UnsupportedFormat:指示的格式' application / form-data'没有可用的反序列化方法。请检查序列化程序中的formats
和content_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)
答案 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