Przesyłanie plików do tastypie za pomocą Backbone?
Sprawdziłem kilka innych pytań i myślę, że mój zasób tastypie powinien wyglądać mniej więcej tak:
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'):
data = request.POST.copy()
data.update(request.FILES)
return data
return super(MultipartResource, self).deserialize(request, data, format)
class ImageResource(MultipartResource, ModelResource):
image = fields.FileField(attribute="image")
Proszę mi powiedzieć, jeśli to źle.
Co nie dostaję, zakładając, że powyższe jest poprawne, to co przekazać do zasobu. Oto wejście pliku:
<input id="file" type="file" />
Jeśli mam model szkieletowy img, co mam ustawić obraz?
img.set("image", $("#file").val()); // tastypie doesn't store file, it stores a string
img.set("image", $("#file").files[0]); // get "{"error_message": "'dict' object has no attribute '_committed'" ...
Do czego należy ustawić atrybut „image” kręgosłupa, aby móc przesłać plik do tastypie za pośrednictwem ajax?