我正try 在我的视集上测试我的更新方法.该视图集是取自DRF的模型视图集.要更新,我需要发送PUT请求.由于这并不总是受支持,因此有两种方法可以告诉服务器我正在进行PUT请求,第一种不符合我的需要的方法是使用一个名为_method
的附加字段,并将其设置为put
.因为我需要发布json数据,所以我需要使用第二种方式,它使用X-HTTP-Method-Override
头.
要在测试用例中发布我的数据,我使用以下代码:
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测试客户机,否则这里的测试会非常烦人.