Получаю следующие данные через запрос POST в рефайме Django. Мне нужно сериализовать эти данные, и эти данные содержат данные для нескольких моделей.Сериализовать данные в django restframework
data={'admin-1':
{'first_name':'john'
,'last_name':'white'
,'job_title':'CEO'
,'email':'[email protected]'
},
'admin-2':
{'first_name':'lisa'
,'last_name':'markel'
,'job_title':'CEO'
,'email':'[email protected]'
},
'company-detail':{'description':'We are a renowned engineering company'
,'size':'1-10'
,'industry':'Engineering'
,'url':'http://try.com'
,'logo':''
,'addr1':'1280 wick ter'
,'addr2':'1600'
,'city':'rkville'
,'state':'md'
,'zip_cd':'12000'
,'phone_number_1':'408-393-254'
,'phone_number_2':'408-393-221'}
r = requests.post('http://127.0.0.1:8000/api/create-company-profile/',data=data)
print r.status_code
print r.text
Вот вид CreateAPI -
class CompanyCreateApiView(CreateAPIView):
def post(self, request, *args, **kwargs):
print 'request ==', request
print 'request.data == ', request.data['admin-2']
import json
print json.loads(request.data)
data=json.dumps({'status':'success'})
return Response(data, status=status.HTTP_200_OK)
я в основном нужно десериализации данных, но получаю эту ошибку.
request == request.data == job_title Internal Server Error: /api/create-company-profile/ Traceback (most recent call last): File "/Users/prem/.virtualenvs/ghost/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/prem/.virtualenvs/ghost/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view return view_func(*args, **kwargs) File "/Users/prem/.virtualenvs/ghost/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/Users/prem/.virtualenvs/ghost/lib/python2.7/site-packages/rest_framework/views.py", line 452, in dispatch response = self.handle_exception(exc) File "/Users/prem/.virtualenvs/ghost/lib/python2.7/site-packages/rest_framework/views.py", line 449, in dispatch response = handler(request, *args, **kwargs) File "/Users/prem/Documents/Ghost/positionmatch-new/menkes-server-master/menkesserver/human_resources/views.py", line 81, in post print json.loads(request.data) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) TypeError: expected string or buffer
Когда я отображения request.data, я не получаю полные данные Thats были размещены .Это выглядит как усеченный, но не уверен ...... Вот напечатанные данные ... request.data == {u'admin-1 ': u'job_title', u'company-detail ': u'zip_cd', u'admin-2 ': u'job_title'} – user1050619
Вы следует дважды проверить данные, которые вы отправляете в запросе. Я попытался скопировать и вставить то, что вы представили здесь, в оболочку Python, и ему не хватало завершающего '}'. –
Я обновил свой ответ, чтобы включить информацию о правильной кодировке вашего запроса –