2011-10-25 66 views
5

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

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

+0

您可以发布出现的数据和您希望看到的请求之间的差异吗? – jro

回答

4

当您更改在测试客户端的内容类型,数据参数是不解析为一个字典了,但直接发送。尝试直接COPYIN您的JSON字符串作为数据参数到您的文章的要求,你应该得到它raw_post_data在您的应用程序。

2

只需要按照步骤如下:
        1.设置数据属性您字符串
        2.然后CONTENT_TYPE属性设置为应用/八位字节流

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

这个工作就像魅力。参考:https://docs.djangoproject.com/en/1.9/_modules/django/test/client/ – Blas