rest-framework-@action()装饰器
路由Routers
使用方法: 在urls.py中定义路由
from rest_framework.routers import DefaultRouter # 定义视图集的路由 router = DefaultRouter() router.register(r'books',new_views.BookInfoViewSet,base_name='book') # 将试图集的路由添加到urlpattens urlpatterns += router.urls
其中:
register(prefix, viewset, base_name) prefix 该视图集的路由前缀 viewset 视图集 base_name 路由名称的前缀
视图集中附加action的声明
from rest_framework.decorators import action # 追加action:返回书记的倒叙地0个书籍的信息 @action(methods=['get'],detail=False) def latest(self, request): """ # 追加action 修改图书的阅读数量 @action(methods=['put'],detail=True) def read(self, request, pk): ...
@action() action装饰器可以接收两个参数: methods: 声明该action对应的请求方式,列表传递 detail: 声明该action的路径是否与单一资源对应,及是否是xxx/<pk>/action方法名/ True 表示路径格式是xxx/<pk>/action方法名/ False 表示路径格式是xxx/action方法名/