2016-05-24 22 views
0

hochladen Ich verwende Django 1.8, tastypie 0.13.0 Versionen, , während die POST-Anfrage gibt es einen Fehler gibt. Nicht unterstütztesFormat: Das angegebene Format 'Anwendung/Formulardaten' hatte keine verfügbare Deserialisierungsmethode. Bitte überprüfen Sie Ihre formats und content_types auf Ihrem Serializer.Ich versuche, das Bild mit Django 1.8 und 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) 

Antwort

0

Verwenden tastypie-extrasMultipartResourceMixin

from tastypie_extras import MultipartResourceMixin 

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

Getestet auf Django 1,4 und 1,8 und Tastypie 0.9.12 und 0.13.0