我遇到了一个与Django 的 Querydict 奇怪行为非常相似的问题:将 POST 字典捆绑成一个键和单元测试 Django JSON View。但是,这些线程中的任何问题/响应都没有真正指向我遇到的特定问题。我正在尝试使用 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'']}>
我想要做的就是能够为我的请求数据指定一个嵌套的字典。是否有捷径可寻?