首页 > 解决方案 > 更改标准端点网址 Django Rest Framewrok

问题描述

我正在使用 viewsets.ModelViewSet 并希望替换标准端点 URL
,例如:
而不是使用“标准”端点
POST {BAST_URL}/snippet/创建新片段,
我想用“创建”URL 替换它并禁用标准
发布 {BAST_URL}/snippet/create/

我能够创建一个新的自定义创建方法,但不能
* 在 URL 中使用“create”-> 错误:不能在以下方法上使用 @action 装饰器,因为它们是现有路由:create
* Disabling Standart URL from creating a snippet

@action(detail=False, methods=['post'])
def create_snippet(self, request, *args, **kwargs):
    return super(SnippettViewSet, self).create(request, *args, **kwargs)

标签: django-rest-frameworkdjango-rest-viewsets

解决方案


您需要向装饰器传递一个额外的参数url_path,如下所示@action

@action(detail=False, methods=['post'], url_path='snippet/create', url_name='snippet_create')
def snippet(self, request, *args, **kwargs):
    return super(SnippettViewSet, self).create(request, *args, **kwargs)

推荐阅读