DjangoのQuerydictの奇妙な動作と非常によく似た問題が発生しています。POSTディクショナリを単一のキーにまとめ、ユニットテストでDjangoJSONViewを実行します。ただし、これらのスレッドの質問/回答のいずれも、私が抱えている特定の問題を実際に示しているわけではありません。Djangoのテストクライアントを使用して、ネストされたJSONオブジェクトを使用してリクエストを送信しようとしています(JSON以外の値を持つJSONオブジェクトでうまく機能します)。
試み#1:これが私の最初のコードです:
response = c.post('/verifyNewMobileUser/',
{'phoneNumber': user.get_profile().phone_number,
'pinNumber': user.get_profile().pin,
'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}})
ご覧のとおり、リクエストデータ内にネストされたJSONオブジェクトがあります。ただし、これはrequest.POSTのようになります。
<QueryDict: {u'phoneNumber': [u'+15551234567'], u'pinNumber': [u'4171'], u'deviceInfo': [u'deviceType', u'deviceID']}>
試行#2:次に、次のようにcontent-typeパラメーターを追加して試行しました。
response = c.post('/verifyNewMobileUser/',
{'phoneNumber': user.get_profile().phone_number,
'pinNumber': user.get_profile().pin,
'deviceInfo': {'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067', 'deviceType': 'I'}},
'application/json')
そして私が今request.POSTのために得るものは
<QueryDict: {u"{'deviceInfo': {'deviceType': 'I', 'deviceID': '68753A44-4D6F-1226-9C60-0050E4C00067'}, 'pinNumber': 5541, 'phoneNumber': u' 15551234567'}": [u'']}>
私がやりたいのは、リクエストデータにネストされたdictを指定できるようにすることだけです。これを行う簡単な方法はありますか?