Django Rest 框架,使用 @action 装饰器时不允许使用“DELETE”方法

问题描述 投票:0回答:1

我有2种

GET
DELETE
操作方法

path('reporting/reports/<str:report_id>', ReportView.as_view({"get": "get_report"}), name="get_report"),

path('reporting/reports/<str:report_id>', ReportView.as_view({"delete": "delete_reports"}), name="delete_reports"),

视图是使用

@action
装饰器

制作的
class ReportView(ViewSet):
    @action(methods=["GET"], detail=False)
    def get_report(self, request, report_id):
        pass
    @action(methods=["delete"], detail=False)
    def delete_reports(self, request, report_id)
        pass

制作的URL是在浏览器检查URL时

reporting/reports/<str:report_id> [name='get_report']
reporting/reports/<str:report_id> [name='delete_reports']

这里

GET
方法有效,但
DELETE
方法不起作用。

如果我更改 url 的顺序,则

DELETE
方法有效,而
GET
不起作用

我收到以下回复消息

{
    "detail": "Method \"DELETE\" not allowed."
}
django-rest-framework decorator django-urls
1个回答
0
投票

“删除”应该大写

© www.soinside.com 2019 - 2024. All rights reserved.