django:使用json对象测试基于POST的视图

我有一个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)

发表评论