在django测试客户端中访问raw_post_data
标题几乎说明了一切:我在几个视图中使用 raw_post_data,因此我需要测试客户端正确授予对其的访问权限。
我从模拟请求中复制了 raw_post_data 字符串,将其传递给 json.loads(),然后使用生成的字典作为测试客户端的 POST 数据。然后,我将内容类型设置为“application/json” - 这会导致 raw_post_data 出现,但它与模拟请求不同。
The title pretty much says it all: I use raw_post_data in a couple of views, and thus I need the test client to properly grant access to it.
I have copied the raw_post_data string, from a mock request, passed it to json.loads(), and then used the resulting dict as the POST data for the test client. Then, I set the content type to "application/json" - this causes raw_post_data to appear, but it is not the same raw_post_data as the mock request.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您在测试客户端中更改内容类型时,数据参数不再解析为字典,而是直接发送。尝试直接将 JSON 字符串作为数据参数复制到您的发布请求中,您应该在应用程序的 raw_post_data 中收到它。
When you change the content type in the test client, the data parameter is not parsed as a dictionary anymore but sent directly. Try copyin your JSON string directly as the data parameter to your post request, you should receive it in raw_post_data in your application.
只需按照以下步骤操作即可:
1.将数据属性设置为您的字符串。
2.然后将 content_type 属性设置为 application/octet-stream。
Just need to follow the steps as below:
1. set the data attribute to your string.
2. then set the content_type attribute to application/octet-stream.