这两个装饰器看起来都只是为你创建一个路由。但是实际上有什么区别(如果有的话)呢?在文档中,这一点并不清楚。我甚至用同样的方法创建了两条路径,结果没有任何区别
qltillow1#
@action用于使现有ViewSet中的方法可传递:如果你有一些特别的方法应该是可路由的,你可以用@action装饰器来标记它们。@API_view将基于普通函数的视图函数“转换”为DRF视图。文档对此进行了最好的解释:REST框架还允许您使用常规的基于函数的视图,它提供了一组简单的装饰器,用于 Package 基于函数的视图,以确保它们接收到Request的示例(而不是通常的Django HttpRequest),并允许它们返回一个Response(而不是DjangoHttpResponse),并允许您配置如何处理请求。此功能的核心是API_view装饰器,它接受视图应该响应的HTTP方法的列表。
1条答案
按热度按时间qltillow1#
@action用于使现有ViewSet中的方法可传递:
如果你有一些特别的方法应该是可路由的,你可以用@action装饰器来标记它们。
@API_view将基于普通函数的视图函数“转换”为DRF视图。文档对此进行了最好的解释:
REST框架还允许您使用常规的基于函数的视图,它提供了一组简单的装饰器,用于 Package 基于函数的视图,以确保它们接收到Request的示例(而不是通常的Django HttpRequest),并允许它们返回一个Response(而不是DjangoHttpResponse),并允许您配置如何处理请求。此功能的核心是API_view装饰器,它接受视图应该响应的HTTP方法的列表。