一、基本方式:
1、path/url('targets/', views.TargetsView.as_view())。
2、re_path/url('target(?P<pk>\d+)', Targetviews.View.as_view())。
二、继承了ViewSetMixin系列,可以写入actions的情况
1、path/url('targets/', views.TargetsView.as_view(actions={'get':'list','post':'create'}))。
2、re_path/url('target(?P<pk>\d+)', Targetviews.View.as_view(actions={'get':'retrieve','put':'update','delete':'destroy'}))。
三、继承了ModelViewSet,自动路由的写法:
1、第一步:导入routers模块,rest_framework.routers。
2、第二步:有两个路由器类可选,使用其一,生成路由器对象,例如,router=路由器类()。
①routers.SimpleRouter:生成两条路由。
②routers.DefaultRouter:生成更多路由。
3、第三步:注册,router.register('路由前缀','继承了ModelViewSet的视图类','路由别名'),例如,router.register('target',views.TargetView,'xxx')。
4、第四步:生成路由,auto_urls=router.urls。
5、第五步:合并路由,urlpatterns+=auto_urls。
四、有参装饰器action
1、用途:给注册了自动路由的视图类增加自定义方法。
2、用法:在自定义方法上方,@action(methods=['GET','POST'],detail=False)。
3、路由:.../target/自定义方法名/。
4、参数:
①methods:请求方式,列表形式。
②detail:布尔类型,是否需要传入<pk>。