You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman调用DRF PATCH接口正常,Python请求返回405错误怎么解决?

解决DRF服务器返回405 Method Not Allowed的PATCH请求问题

嘿,我一眼就看到你代码里的核心问题了——你请求的URL不对!

你看,你已经辛辛苦苦拼接好了带具体资源ID的详情URL:

url = source.url + str(self.ss_id) + '/'

但实际发送PATCH请求的时候,你用的却是source.url(也就是不带ID的列表接口地址,比如http://127.0.0.1:8000/api/title/),而DRF的列表视图默认是不支持PATCH方法的,只有单个资源的详情视图(比如http://127.0.0.1:8000/api/title/8174/)才允许用PATCH修改数据。这就是你收到405错误的根本原因。

第一步:修正请求URL

把你的请求代码改成用拼接好的url变量:

response = requests.patch(url, headers=headers, data={'key':'value'})

额外补充:关于请求头的小提示

虽然这次的问题不是请求头导致的,但可以给你提个醒:如果你的DRF序列化器期望接收JSON格式的数据,Postman可能默认帮你设置了Content-Type: application/json请求头,但用requests的data参数发送的是表单格式(application/x-www-form-urlencoded)。如果后续遇到序列化错误,可以把data换成json参数,requests会自动帮你设置正确的请求头:

response = requests.patch(url, headers=headers, json={'key':'value'})

先修正URL的问题,应该就能解决405的报错了!

内容的提问来源于stack exchange,提问作者Sharpless512

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:01:11