请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

源码中一些方法的执行问题

老师,我们自己写的viewset继承了GenericViewSet,ListModelMixin,DestroyModelMixin等,但我们访问列表或者删除的时候,底层GenericViewSet的get_queryset, ListModelMixin的list方法或DestroyModelMixin的destroy方法会被调用,请问一下这些方法是怎么被调用的呢,调用的位置在哪里呢,想具体了解下整个调用的流程

https://img1.sycdn.imooc.com//szimg/5b4c4d520001e12204720217.jpg

https://img1.sycdn.imooc.com//szimg/5b4c4d520001893b04500176.jpg

https://img1.sycdn.imooc.com//szimg/5b4c4d5200017b7906030758.jpg


正在回答

1回答

具体的流程 你需要通过调试viewsets.GenericViewSet顺着这个类以及其父类去调试整个执行过程,一般都是mixin都是一些辅助方法而已 真正的流程是在viewsets.GenericViewSet继承类里面

1 回复 有任何疑惑可以回复我~
  • 提问者 如梭的日月 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-07-19 09:55:48
  • 提问者 如梭的日月 #2
    GenericViewSet继承了GenericAPIView,举个list的例子,ListAPIView也继承了GenericAPIView和ListModelMixin,ListModelMixin里面有list方法,ListAPIView的get方法里面调用了父类的list方法,实际的list是在这里调用的吗,我打断点调试并没有走这里
    回复 有任何疑惑可以回复我~ 2018-07-19 10:34:16
  • bobby 回复 提问者 如梭的日月 #3
    list方法是ListModelMixin的方法 ListAPIView中调用list方法,实际的list方法就是在ListModelMixin中的方法
    回复 有任何疑惑可以回复我~ 2018-07-21 12:33:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信