项目是python代码开发, urls.py 路由中访问路径代码如下:
urlpatterns = [path('reportmanagement/<int:pk>/', views.ReportManagementDetail.as_view(), name='report-management-detail'),]
对应view视图中代码如下:
class ReportManagementDetail(GenericAPIView):"""报表管理:删除、修改"""serializer_class = ReportManagementSerializerqueryset = ReportManagement.objects.all()def delete(self, request, *args, **kwargs):"""删除报表列表:param: id:int:return:"""instance = self.get_object()name = instance.nameinstance.delete()data = response_data(code=200, result=[], msg="删除成功")return Response(data, status=status.HTTP_200_OK)
上面代码可以看到我要执行的是一个删除操作, 使用的是python drf模型, 自己使用postman调用,界面参数如下:
会发现下面就报出了Method not allowed的错误提示信息, 经过查阅资料有说改什么windows电脑设置的, 还有在方面上面加代码说告诉postman这是一个detete请求, 还有其他的解决办法, 自己就不在此一一指出, 但当发现其他博客说的办法都不适合自己项目的情形, 然后找了之前的项目代码和使用postman调用执行delete请求的历史记录, 以及填写参数的位置, 发现了问题的症结所在, 其实处理办法很简单, 只需要去掉url传递参数的问好?和参数名=即可正常调用接口, 正常调用postman请求界面如下:
大家应该能看到, url只需填上需要删除数据的id具体对应的数值即可, 不用填写参数名=数值
原因其实也很简单, 在最上面urls.py路由代码文件中,
path('reportmanagement/<int:pk>/', views.ReportManagementDetail.as_view(), name='report-management-detail'), python函数: reportmanagement/<int:pk>/
/<int:pk/代码已经明确告诉了我们答案, 传递的参数类型是int,然后直接填写具体数值即可
以上只贴出了最最关键部分的代码, 不包括包,路径, 各种导入的第三库等等, 只是作为一个记录, 介绍下解决这个问题的思路和办法, 不代表大家遇到Method Not Allowed都是这种解决方案, 各自情况大家自行具体分析对待, 好了今天文章的就先到这, 感谢您的查阅, 我们下期见♪♪♪