方法\"POST"不允许在具有额外操作的Django休息框架中&ModelViewset



我试图在Django Rest中使用额外的操作POST,但收到了这个错误

{"detail":"Method "POST" not allowed."}

这是POST的方法:

class TemplateView(ModelViewSet):
@action(detail=False, methods=['POST'],
url_path=r'process_version_template/')
def process_version_template(self, request):

print("request", request)

return JsonResponse({}, safe=False, status=200)

在我的urls.py:中

api_router = DefaultRouter()
api_router.register(r'template', views.TemplateView, 'template')
urlpatterns = [
path('predefined-comments', PredefinedCommentListView.as_view(),
name='predefined_comments'),
]
urlpatterns += api_router.urls

然后我在Postman中使用的端点发送数据是:

http://127.0.0.1:8000/api/v1/financing-settings/template/process_version_template/

那么,主体是:

{
"id":1784,
"param":"block",
"target":315
}

我做错了什么?

似乎不需要放置尾部斜杠

更改

`url_path=r'process_version_template/'`

`url_path=r'process_version_template'`

最新更新