标题几乎说明了一切:我在几个视图中使用raw_post_data,因此我需要测试客户端正确授予对它的访问权限。
我已经从模拟请求复制了raw_post_data字符串,将其传递给json.loads(),然后使用生成的dict作为测试客户端的POST数据。然后,我将内容类型设置为“application / json” - 这会导致raw_post_data出现,但它与模拟请求的raw_post_data不同。
答案 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)