访问django测试客户端中的raw_post_data

时间:2011-10-25 06:27:42

标签: django json django-views

标题几乎说明了一切:我在几个视图中使用raw_post_data,因此我需要测试客户端正确授予对它的访问权限。

我已经从模拟请求复制了raw_post_data字符串,将其传递给json.loads(),然后使用生成的dict作为测试客户端的POST数据。然后,我将内容类型设置为“application / json” - 这会导致raw_post_data出现,但它与模拟请求的raw_post_data不同。

2 个答案:

答案 0 :(得分:4)

当您更改测试客户端中的内容类型时,数据参数不再被解析为字典,而是直接发送。尝试将您的JSON字符串直接复制为发布请求的数据参数,您应该在应用程序的raw_post_data中接收它。

答案 1 :(得分:2)

只需按照以下步骤操作:
1.将数据属性设置为字符串
2.然后将 content_type 属性设置为 application / octet-stream

    payload = {'k1':'v1'}
    data = json.dumps(payload)
    response = self.client.post(url, data=data, content_type='application/octet-stream', **self.auth_headers)