Django之django-rest-framework 的通用视图

官方文档:django-rest-framework

能使用到queryset ,说明是列表视图

当不手动指明类属性 queryset = UserFav.objects.all() 时,
需要手动重写 : get_queryset 方法,并且返回查询集.

# 这里用了get_queryset来指定queryset 那么我们上面的query_set可以省略不写, 但是前提是在注册路由是需要加个base_name
def get_queryset(self):
        # self.request.user 当前用户
        return UserFav.objects.filter(user=self.request.user)

urls.py:

from rest_framework.routers import DefaultRouter

# 视图所在
from user_operation.views import UserFavViewSet 

router = DefaultRouter()

# 用户收藏
router.register(r"userfavs", UserFavViewSet, base_name="userfavs")

urlpatterns = [
    # 自动生成url
    url(r"^", include(router.urls)),
]

能使用到get_object 说明是详情视图

 def get_object(self):
        """
        详情
        重写父类,
        '''
        return obj

viewsets.ModelViewSet 既可以返回queryset,也可以返回object

方法:

get_queryset()
想要在其他方法中使用注意: 下下图就是一个很好的例子
在这里插入图片描述
get_objects():
在这里插入图片描述


版权声明:本文为weixin_44984864原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。