其他分享
首页 > 其他分享> > viewsets总结

viewsets总结

作者:互联网

继承viewsets:

                   1. viewsets继承viewsetMixin,支持list(),create()等action方法;

                       a.  可直接继承ModelViewSet(继承了mixins和GenericViewSet), 简化代码编写,

                            ModelViewSet内部有6个接口,若不全部需要,可根据需求继承(注意:最后需继承GenericViewSet):

                                                                                                                               mixins.CreateModelMixin,

                                                                                                                               mixins.RetrieveModelMixin,

                                                                                                                               mixins.UpdateModelMixin,

                                                                     mixins.DestroyModelMixin,

                                                                   mixins.ListModelMixin,
                                                                   GenericViewSet

                         b.  ReadOnlyModelViewSet:继承自GenericAPIVIew,同时包括了ListModelMixin、RetrieveModelMixin。

                       需指定:

                 queryset = Projects.objects.all()
serializer_class = Projects_ModelSerializer

                   2. 定义路由时,向as_view()传递一个字典(key为通用请求方法名称,values为调用的actions名称)

                   3. viewsets内的action方法最常用:可通过self.action获取当前action方法名称,根据不同的action,指定不同的查询集或序列化器类。

            若想自定义方法可路由(names),可自动生成路由器条目,需使用:

          @action(methods=['GET', 'POST'], detail=False)
            """
a. 可以使用action装饰器,指定定义的action方法(使用路由器时,会自动生成路由条目)
b. 若不指定methods,默认支持GET方法
c.detail:是否需要传递主键id值,需要True,不需要传False
            d. url_path: url路径字符串
e. url_name: url路径名称
f. 不指定url_path和url_name,默认为action方法名
"""


标签:总结,继承,mixins,viewsets,url,action,方法
来源: https://www.cnblogs.com/zxy01/p/14265205.html