2 回答

TA貢獻1796條經(jīng)驗 獲得超10個贊
我走了自定義序列化器之路:
class FormPostSerializer(Serializer):
formats = ['form']
content_types = {
'form': 'multipart/form-data',
}
def from_form(self, content):
try:
dict = cgi.parse_multipart(StringIO(content), self.form_boundary)
except Exception, e:
raise e
for key, value in dict.iteritems():
dict[key] = value[0] if len(value) > 0 else None
return dict
并且是需要發(fā)布多個文件的所有資源的基類:
class FormResource(ModelResource):
class Meta:
serializer = FormPostSerializer()
def dispatch(self, request_type, request, **kwargs):
cth = request.META.get('CONTENT_TYPE') or \
request.META.get('Content-type') or \
self._meta.serializer.content_types['json']
self.Meta.serializer.form_boundary = self.parse_content_type_header(cth)
return super(FormResource, self).dispatch(request_type, request, **kwargs)
def parse_content_type_header(self, content_type_header):
parts = cgi.parse_header(content_type_header)
rv = {}
for p in parts:
if isinstance(p, dict):
rv = dict(rv.items() + p.items())
return rv
當然,序列化程序需要一些其他處理(例如,UTF8字段),我從答案中省略了這些處理。

TA貢獻1868條經(jīng)驗 獲得超4個贊
當然可以!根據(jù)圖像的大小,您必須決定上載它們是否花費太長時間,但是有可能。根據(jù)好吃的文檔,可以通過Patch選項進行批量創(chuàng)建和更新。
添加回答
舉報