【问题标题】:Access raw_post_data in django test client在 django 测试客户端中访问 raw_post_data
【发布时间】:2011-12-14 16:29:12
【问题描述】:

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

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

【问题讨论】:

  • 您能否发布出现的数据(差异)和您希望看到的请求?

标签: django json django-views


【解决方案1】:

只需按照以下步骤操作:
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)

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2012-09-28
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多