django-rest-framework - 更改标准端点网址 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)
解决方案
您需要向装饰器传递一个额外的参数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)
推荐阅读
- html - 使用 HTML5 输入模式强制执行有效的主机名
- ruby-on-rails - 我运行了“Rails 控制台”,我的控制台中的输出与我正在阅读的教科书中的控制台输出不匹配
- python - 如何使用 AsyncIo 实现 UDP 和 TCP 套接字
- php - PHP ZipArchive 文件 URL (Http)
- laravel - 检查付款
- ruby-on-rails - 在 Rails 5.2 中使用“activerecord-typedstore”gem 时,saved_change_to_* 无法正常工作
- html - Webview在电子js中返回空白页
- java - 类 Concert 中的 JAVA 方法 getArtist 不能应用于给定类型
- python - 在 Windows 中使用 strftime 创建文件名有问题吗?
- reactjs - 使用 React JS 从 S3 Bucket 获取图像