这两个装饰器似乎都只是为你创建一个路由。但实际差异(如果有的话)是什么呢?在文档中,这一点并不清楚。
我甚至以同样的方式创建了两条路线,没有区别
@action用于使现有ViewSets中的方法可路由:
如果您有应该路由可达的ad-hoc方法,您可以标记它们就像@action装饰器一样。
@api_view"converts"基于普通函数的视图函数转换为DRF视图。文档解释得最好:
REST框架还允许您使用基于常规函数的工作的观点。它提供了一组简单的装饰器来包装函数以确保它们接收到Request(而不是。)的实例(通常的Django HttpRequest),并允许它们返回一个响应(而不是Django的HttpResponse),并允许你配置请求被处理。这个功能的核心是api_view装饰器,它接受你的视图应该响应的HTTP方法列表。