Доступ к raw_post_data в тестовом клиенте django - PullRequest
5 голосов
/ 25 октября 2011

Название в значительной степени говорит само за себя: я использую raw_post_data в нескольких представлениях, и поэтому мне нужен тестовый клиент, чтобы правильно предоставить доступ к нему.

Я скопировал строку raw_post_data из ложного запроса, передал ее в json.loads (), а затем использовал полученный dict в качестве данных POST для тестового клиента. Затем я установил тип содержимого «application / json» - это приведет к появлению raw_post_data, но это не то же самое raw_post_data, что и для ложного запроса.

Ответы [ 2 ]

4 голосов
/ 12 ноября 2011

При изменении типа содержимого в тестовом клиенте параметр данных больше не анализируется как словарь, а отправляется напрямую. Попробуйте скопировать строку JSON непосредственно в качестве параметра данных в ваш запрос на публикацию, вы должны получить его в виде raw_post_data в вашем приложении.

2 голосов
/ 26 августа 2014

Просто следуйте инструкциям ниже:
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...