標題幾乎說明了一切:我在兩個視圖中使用raw_post_data,因此我需要測試客戶端正確授予對它的訪問權限。在django測試客戶端訪問raw_post_data
我已經從模擬請求中複製raw_post_data字符串,並將它傳遞給json.loads(),然後使用生成的字典作爲測試客戶端的POST數據。然後,我將內容類型設置爲「application/JSON」 - 這將導致raw_post_data出現,但它是不一樣的raw_post_data作爲模擬請求。
標題幾乎說明了一切:我在兩個視圖中使用raw_post_data,因此我需要測試客戶端正確授予對它的訪問權限。在django測試客戶端訪問raw_post_data
我已經從模擬請求中複製raw_post_data字符串,並將它傳遞給json.loads(),然後使用生成的字典作爲測試客戶端的POST數據。然後,我將內容類型設置爲「application/JSON」 - 這將導致raw_post_data出現,但它是不一樣的raw_post_data作爲模擬請求。
當您更改在測試客戶端的內容類型,數據參數是不解析爲一個字典了,但直接發送。嘗試直接COPYIN您的JSON字符串作爲數據參數到您的文章的要求,你應該得到它raw_post_data在您的應用程序。
只需要按照步驟如下:
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)
這個工作就像魅力。參考:https://docs.djangoproject.com/en/1.9/_modules/django/test/client/ – Blas
您可以發佈出現的數據和您希望看到的請求之間的差異嗎? – jro