Я пытаюсь проверить свой метод обновления на моем представлении. Представленный вид - это модельное представление, взятое из drf. Для обновления мне нужно будет отправить запрос на отправку. Поскольку это не всегда поддерживается, есть два способа сообщить серверу, что я делаю запрос на отправку, первый, который не соответствует моим потребностям, - это использовать дополнительное поле для формирования с именем _method
и установить его на put
. Поскольку мне нужно публиковать данные json, мне нужно использовать второй способ, который использует заголовок X-HTTP-Method-Override
.Django Test Client Override Header
Чтобы разместить свои данные в TestCase я использую следующий код:
header = {'X_HTTP_METHOD_OVERRIDE': 'PUT'}
response = client.post('/model/1/', content_type='application/json', data=post_data_clean, **header)
Но, к сожалению, результат я получаю {'detail':'Method POST not allowed.'}
. Я проверил поведение сервера с помощью аддона (Postman), где я также указал заголовок X-HTTP-Method-Override
. Никаких исключений не возникает. Мне нужно знать, как правильно передать заголовок тестовому клиенту django, иначе тестирование будет действительно раздражать здесь.
Спасибо за ссылку на документ! И ответ причины. – Iwan1993