2016-05-24 4 views
0

Я использую Django 1.8, tastypie версии 0.13.0, , а при отправке запроса POST он дает ошибку. UnsupportedFormat: в формате, указанном «application/form-data», не было никакого метода десериализации. Пожалуйста, проверьте свои formats и content_types на вашем Serializer.Я пытаюсь загрузить изображение с помощью Django 1.8 и tastypie

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

Взгляните на этом вопросе: https://github.com/django-tastypie/django-tastypie/issues/42#issuecomment-5485666

Речь идет о поддержке загрузки файла и как иметь дело с многочастными/фасонными данными.

Кроме того, я предлагаю вам реализовать это поле tashypie https://gist.github.com/klipstein/709890, чтобы решить эту проблему.

Надеюсь, что эта работа для вас.

0

Применение tastypie-extrasMultipartResourceMixin

from tastypie_extras import MultipartResourceMixin 

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

Проверено на Django 1.4 и 1.8 и Tastypie 0.9.12 и 0.13.0