首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django REST - @action修饰器“未解析的引用'action'”

Django REST框架是一个用于构建Web API的强大工具,它基于Django框架,并提供了一些额外的功能和工具来简化API的开发过程。其中,@action修饰器是Django REST框架中的一个重要特性之一。

@action修饰器用于在视图集中添加自定义的操作,这些操作不属于标准的HTTP方法(如GET、POST、PUT、DELETE),但仍然需要与资源进行交互。通过使用@action修饰器,我们可以在视图集中定义自定义的操作,并将其映射到特定的URL路径上。

@action修饰器接受多个参数,其中最重要的是detail参数和methods参数。detail参数用于指定该操作是否作用于单个资源对象,如果设置为True,则该操作将作用于单个资源对象;如果设置为False,则该操作将作用于整个资源集合。methods参数用于指定该操作支持的HTTP方法。

使用@action修饰器可以为视图集添加各种自定义操作,例如导出数据、发送电子邮件、生成报告等。这样,我们可以通过调用相应的URL路径来触发这些自定义操作,并对资源进行相应的处理。

以下是@action修饰器的一些优势和应用场景:

  • 提供了一种简单而灵活的方式来扩展API的功能,使得我们可以根据具体需求添加自定义操作。
  • 可以将相关的操作组织在一起,提高代码的可读性和可维护性。
  • 可以根据需要设置操作作用于单个资源对象或整个资源集合。
  • 可以根据需要指定操作支持的HTTP方法。

对于使用Django REST框架的开发者来说,熟悉和掌握@action修饰器是非常重要的,因为它可以帮助我们更好地构建和定制Web API。

腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储等。这些产品可以帮助开发者快速搭建和部署基于云计算的应用。具体而言,腾讯云的云服务器产品可以提供弹性的计算资源,云数据库产品可以提供可靠的数据存储和管理,云存储产品可以提供高可用的文件存储服务。

关于Django REST框架和@action修饰器的更多信息,您可以参考腾讯云的文档和教程:

  • Django REST框架官方文档:https://www.django-rest-framework.org/
  • 腾讯云云服务器产品介绍:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库产品介绍:https://cloud.tencent.com/product/cdb
  • 腾讯云云存储产品介绍:https://cloud.tencent.com/product/cos

请注意,以上答案仅供参考,具体的推荐产品和产品介绍链接可能需要根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rest_framework Route

目录 Rest_framework Router 路由 ViewSet结合Router,自动生成url。...SimpleRouter类源码 总结 Rest_framework Router 路由 虽说django rest_framework是基于django,url路由到视图主要还是利用django...dispatcher路由系统(可以参考我另一篇关于django url dispatcher详解),但是rest_framework还在django路由基础上,提供了基于restful风格更高等级路由方式...rest_framework.routers.SimpleRouter源码解析 主要通过源码简单分析,印证本文上面内容表达 SimpleRouter继承和方法一览 ?...通过源码解析,我们就懂得了怎么利用Router路由类来定制化和简化我们一些经常要做工作,也提供了可自定义接口给我们。 认识Router就要清晰认识 4中路由类型 和 其设计原理模式。

1.1K10

第 9 篇:实现分类、标签、归档日期接口

一是 action 装饰,它用来装饰一个视图集中方法,被装饰方法会被 django-rest-framework 路由自动注册为一个 API 接口。...django-rest-framework 默认只能识别标准命名视图集方法并将其注册为 API,但我们可以添加更多非标准 action,而为了让 django-rest-framework 能够识别这些方法...,就需要使用 action 装饰进行装饰。...接着我们在接口返回一个 Response, Response 将序列化后结果包装返回(保存在 data 属性中),django-rest-framework 会进一步帮我们把这个 Response 中包含数据解析为合适格式...对于这样场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定文章列表再返回。

2.6K30
  • 第 5 篇:用视图集,简化你代码

    使用视图集一个更大好处,就是可以配合 django-rest-framework 提供路由(router),自动生成 API URL,不需要我们再手工将 URL 模式和视图函数绑定了。...前面说到视图集一个最大好处就是可以使用路由(router)自动生成 URL 模式。URL 正是根据 action 类型来生成,后面我们会具体说到。..., basename='post') Django-rest-framework 提供 SimpleRouter 和 DefaultRouter 两个路由类,后者是对前者拓展,因此通常情况下都使用后者...django-rest-framework 默认生成规则是 basename-action。...运行开发服务,访问 http://127.0.0.1:8000/api/,界面如下: django-rest-framework 为我们自动生成了 API 交互后台,在这个界面中可以和我们创建 API

    81810

    使用 React 和 Django REST Framework 构建你网站

    在我们最近工作中,构建网站使用架构是带有 Django REST Framework(DRF)后端 React 前端。它们是通过在前端使用 axios(前端库)调用后端 API 来交互。...我们还使用了 Redux(前端库)来存储全局应用程序状态(存在浏览端)。这是我们首选,因为它允许前后端完全分离。...'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', ] 2.运行命令创建认证 App...headers: {'Authorization': 'Token ' + token} }; return axios.create(params); } 前面的后两个代码块中我们引用了如下...这样可以通过从浏览开发者工具检查 redux-logger 输出,来查看 setToken redux action 结果了。 ?

    7.1K70

    重点内容回顾-DRF

    b.PROTECT保护,通过抛出一个异常ProtectedError异常,来阻止删除主表中被外键引用数据。...request.data保存解析之后请求体数据,并且已经解析成了字典或类字典,相当于包含Django原始request对象中request.body/request.POST/request.FILES...request.query_params保存解析之后查询字符串数据,并且已经解析成了字典或类字典,相当Django原始request对象中request.GET 2.响应时可以统一返回Response...举个例子:True表示是xxx/\/action方法名,而False表示是xxx/action方法名 6.高级功能 6.1分页 我们可以在配置文件中设置全局分页方式 REST_FRAMEWORK...权限:区分是认证与认证用户。可以进行DRF框架默认全局权限设置,也可对其进行修改,还可以指定某个视图权限控制设置,甚至可以自定义权限控制类。权限和认证通常是一起使用

    2.4K20

    drf之请求、响应、视图

    drf提供了Parser解析,在接收到请求之后会根据Content-Type指明请求数据类型(json、表单等)将请求数据进行解析解析为类字典 对象保存到Request 对象之中...类似于Django中标准request.POST和 request.FILES属性,但提供如下特性: 1 包含了解析之后文件和非文件数据 2 包含了对POST、PUT、PATCH请求方式解析数据...3 利用了REST frameworkparsers解析,不仅支持表单类型数据,也支持JSON数据 .query_params request.query_params与Django标准...APIView与View不同之处在于: 传入到视图方法中REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...3.2 action 在视图集中,我们可以通过action对象属性来获取当前请求视图集时action动作是哪个。除了默认方法动作外,还可以添加自定义动作。

    2.1K20

    DjangoRESTframework(补充)

    ', views.BookInfoViewSet) # 向路由中注册视图集 urlpatterns += router.urls # 将路由所以路由信息追到到django路由列表中 定义序列化...中 request.POST 包含了解析之后文件和非文件数据 包含了对POST、PUT、PATCH请求方式解析数据 利用了REST frameworkparsers解析,不仅支持表单类型数据...两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供所有视图基类,继承自DjangoView父类...APIView与View不同之处在于: 传入到视图方法中REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework...注意,在提供序列化对象时候,REST framework会向对象context属性补充三个数据:request、format、view,这三个数据对象可以在定义序列化时使用。

    2.2K30

    DRF Swagger自定义action文档参数实现

    DRF Swagger自定义action文档参数实现 Posted July 04, 2018 ?...#Swagger 这里不讲 DRF(django rest framework) 和 DRS(django rest swagger) 如何结合使用, 在以上两个项目文档中都有相关文档。...在安装完毕后, Swagger 可以自动通过我们锁定一 serializer 来自动生成各个方法(GET, POST, PUT, DELETE)coreapi.link(是一套 REST Docuemnt...但大多数我们往往需要根据特定需求, 做一些自定义接口, 比如使用 api_view 装饰定义函数式视图, 或者使用DRF 中 action 装饰定义自定义接口(在一些较早DRF版本中为...主要逻辑为, 当为函数式视图或者为view action endpoint 则通过 yaml 格式文档描述,其他则通过默认行为获取接口 link。

    3.7K30

    第 16 篇:别再手动管理接口文档了

    drf-yasg drf-yasg[5] 是一个 django 第三方应用,它可以从 django-rest-framework 框架编写代码中自动提取接口信息来生成符合 OpenAPI 标准文档...视图,这个视图将返回 HTML 格式文档内容,这样我们就可以直接在浏览查看到博客接口文档: # filename="blogproject/urls.py" from django.urls import...原理是 drf-yasg 会尝试去解析接口对应序列化(Serializer),从序列化中提取出对应请求和响应字段(如果序列化中找不到,它会进一步去序列化关联模型中找),因此我们就可以给序列化中定义字段添加说明信息...原因也很明显,这个接口对应 action 是 list_archive_dates,drf-yasg 在这个 action 中没有找到解析响应结果序列化(Serializer),所以它跑去视图集...responses 参数值是一个字典,字典键是 HTTP 响应码,值可以是一个序列化,这样 drf-yasg 会拿这个序列化解析接口响应参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中

    1.8K20

    第 12 篇:加缓存为接口提速

    但是我们学习 django-rest-framework 不仅仅是为了写博客,也许你在工作中,面对是流量非常大系统,这时候缓存就不可或缺。...drf-extensions Cache django 缓存框架比较底层,drf-extensions 在 django 缓存框架基础上,针对 django-rest-framework 封装了更多缓存相关辅助函数和类...例如,同一个 API 请求,已认证和认证用户将得到不同响应结果,我们可以定义 key 生成规则为请求 URL + 用户认证 id。...cache_response 装饰 这个装饰器用来装饰 django-rest-framework 视图(单个视图函数、视图集中 action 等),被装饰视图将具备缓存功能。...缓存博客文章 我们首先来使用 cache_response 装饰缓存文章列表接口,代码如下: blog/views.py from rest_framework_extensions.cache.decorators

    1.1K40

    Django站内消息通知

    打开signals.py文件,可发现已经定义好了3个signals信号。...可在其中显示读消息和已读消息,这里简单实现,先显示最多30条读消息。 首先需要修改或者新增user_info对应响应方法返回读消息。...为了方便获取具体链接,在博客和专题model类中分别加入获取具体对象链接方法: from django.core.urlresolvers import reverse # url逆向解析 class...为了不重复写冗余代码,我将修改消息状态代码写成装饰: #coding:utf-8 from notifications.models import Notification # 修改读消息为已读装饰...其中链接也需要加入notification参数,让用户打开具体页面时修改消息状态。 这时候需要用到前面创建消息使用action_object了。

    3.1K20

    Django REST Swagger实现指定api参数

    难点 对 Django REST Swagger < 2 版本,要指定swaggerapi参数非常容易,只要将相关说明以特定格式和yaml格式写在相应api视图函数文档字符串(DocStrings...一种解决方案 在Django REST framework基于类api视图中定义filter_class过滤出模型(models)特定字段,swagger会根据这些字段来渲染。...启发 查阅Django REST Swagger文档,Advanced Usage提到,基于类文档api视图是这样: from rest_framework.response import Response...所以可以通过重载schema变量,利用yaml包解析出api视图函数文档字符串中参数定义赋值给schema变量。...(如APIView或ModelViewSet)中重载schema: schema = CustomSchema() 以上这篇Django REST Swagger实现指定api参数就是小编分享给大家全部内容了

    2.2K20
    领券