原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。
DRF应用和管理
【DRF配置管理】Django使用DRF框架
【DRF配置管理】如何在视图类配置参数(一)
【DRF配置管理】如何在视图类配置参数(二)
【DRF配置管理】如何在视图类配置参数(三)
【DRF配置管理】如何在视图类配置参数(四)
【DRF配置管理】如何在视图类使用get_objects()
【DRF配置管理】如何建立完善的docs文档
文章目录
- DRF应用和管理
- 一、get_objects作用范围
- 二、‘重写’get_objects
一、get_objects作用范围
get_objects一般用于获取一条、更新和删除,在ModelViewSet类中,影响retrieve、update、destroy方法,我们自定义的方法也可以用到instance = self.get_object()。
二、‘重写’get_objects
网络上很多博客在使用drf时,都可能介绍过get_objects的重写,重写可以解决一些问题,但是也会产生一些新的疑问,这个get_objects在什么时候被应用。
我的理解是get_objects是不需要重写的,只要知道get_objects是被怎么应用的就可以灵活的使用。
我们在urls.py文件会以如下方式设置路由
这里可以看出来,retrieve、update、destroy方法是跟路由的int:pk相关的,其实pk在这里的作用就是get_objects实现的orm查询Target.objects.get(pk=int)。
drf视图类中提供可修改pk的参数lookup_field,通过他可以实现修改路由影响get_objects参数的效果。
按照如上设置,我们我们就以实现重写get_objects的效果了