更改标准端点 url Django Rest Framework
Change standard endpoints urls Django Rest Framewrok
我正在使用 viewsets.ModelViewSet 并想替换标准端点 URLs
例如:
而不是使用 "standard" 端点
创建新代码段
POST {BAST_URL}/片段/
我想用 "create" URL 替换它并禁用标准
POST{BAST_URL}/snippet/create/
我可以创建新的自定义创建方法,但不能
* 在 URL 中使用 "create" -> 错误:不能在以下方法上使用 @action 装饰器,因为它们是现有路由:create
* 禁止 Standart URL 创建片段
@action(detail=False, methods=['post'])
def create_snippet(self, request, *args, **kwargs):
return super(SnippettViewSet, self).create(request, *args, **kwargs)
你需要传递一个额外的参数 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)
我正在使用 viewsets.ModelViewSet 并想替换标准端点 URLs
例如:
而不是使用 "standard" 端点
创建新代码段
POST {BAST_URL}/片段/
我想用 "create" URL 替换它并禁用标准
POST{BAST_URL}/snippet/create/
我可以创建新的自定义创建方法,但不能
* 在 URL 中使用 "create" -> 错误:不能在以下方法上使用 @action 装饰器,因为它们是现有路由:create
* 禁止 Standart URL 创建片段
@action(detail=False, methods=['post'])
def create_snippet(self, request, *args, **kwargs):
return super(SnippettViewSet, self).create(request, *args, **kwargs)
你需要传递一个额外的参数 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)