2016-01-28 1 views
2

Мое приложение получает данные о многочастной форме как часть запроса. Это в request.body как String. Есть простой способ, чтобы разобрать его и преобразовать его в словарь питонаDjango Tastypie pasrsing multi часть форма данные

Мой request.body дает мне следующее

'------WebKitFormBoundaryUljHZoRAHNz2UgwB\r\nContent-Disposition: form-data; name="password"\r\n\r\n123\r\n------WebKitFormBoundaryUljHZoRAHNz2UgwB\r\nContent-Disposition: form-data; name="email"\r\n\r\[email protected]\r\n------WebKitFormBoundaryUljHZoRAHNz2UgwB--\r\n' 

Я преобразовав его в Словаре по

 x= re.findall('name=.*\s\s.*\s.*',request.body) 
     z={} 
     for a in x: 
      z[repr(re.findall('".+"',a))[3:-3]]=re.findall('\s\S+\s',a)[0][1:-1] 
     requestData=z 

Но это очень неэффективно и плохо. то есть, если значение пустое оно выдает ошибку

ответ

0

MultiPartParser Используйте Джанго: https://github.com/django/django/blob/master/django/http/multipartparser.py#L45

from django.http.multipartparser import MultiPartParser 

parser = MultiPartParser(request.META, request.body, request.upload_handlers) 
POST, FILES = parser.parse() 

Или попробуйте:

request._load_post_and_files() 
request.POST 
request.FILES 
+0

опечатка на ваш ответ он должен быть 'парсер = MultiPartParser (запрос. META, request.body, request.upload_handlers) 'Но я получаю эту ошибку' raise MultiPartParserError ('Invalid Content-Type:% s'% content_type) ' –

+0

Каков был тип содержимого? –

+0

content_type = "application/json" –