我有一个django应用程序,其中有几个视图通过POST请求接受json对象。json对象是中等复杂的,有几层嵌套,因此我使用json库来解析原始的post数据,如下所示:
def handle\u ajax\u调用(请求):
post_json=json.loads(request.raw_post_数据)
... (使用json查询完成任务)
接下来,我想为这些视图编写测试。不幸的是,我不知道如何将json对象传递给客户端。下面是我的代码的一个最简单的案例版本:
def test\u ajax\u调用(self):
c=客户机()
调用_命令('loadfixtures','temp-fixtures-1')#自定义命令来填充数据库
J={
一些信息:{
属性1:“AAAA”,
属性2:“BBBB”,
列表属性:[“x”、“y”、“z”]
},
更多信息:{…},
信息列表:[1,22,23,24,5,26,7]
}
J_string=json.dumps(J)
response=c.post('/ajax/call/',data=J_字符串)
当我运行测试时,它失败,原因是:
AttributeError:'str'对象没有属性'items'
如何在Client.post方法中传递JSON对象
文档似乎暗示,如果您将content\u type
参数传递给client.post
,它会将数据
值作为文档处理并直接发布。所以试试这个:
response=c.post('/ajax/call/',content\u type='application/json',data=J\u string)