第八章、queryset

导读

其实讲 queryset 完全是为了后面的 serializer,只有我们知道当前数据是什么样的,才能开始将数据进行序列化,最后变成我们想要的数据格式。

回忆GenericeViewSet

GenericeVewSet 类中,我们之前已经发现了 get_queryset 函数。

def get_queryset(self):
        assert self.queryset is not None, (
            "'%s' should either include a `queryset` attribute, "
            "or override the `get_queryset()` method."
            % self.__class__.__name__
        )

        queryset = self.queryset
        if isinstance(queryset, QuerySet):
            # Ensure queryset is re-evaluated on each request.
            queryset = queryset.all()
        return queryset

函数中,去找到 queryset 并返回该 queryset。queryset 就是就获取了 model 层的数据。

虽然获取了 queryset,但是我们好像并没看出来 queryset是个啥类型,那么我们不妨看看注释

Get the list of items for this view.
        This must be an iterable, and may be a queryset.
        Defaults to using `self.queryset`.

这段注释,很好的解释了 queryset 返回的数据类型,是一个 list,或者是一个 QuerySet,必须是可遍历的。
看不出来更多了,我们先假定返回的数据是 list,然后去看 serializer

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    阳光小镇少爷阅读 9,235评论 0 8
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,235评论 17 410
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • 经典对白: 你扮演的角色很生气,但是没有生气的演员 如果你不知道你唱的是什么 (唱的完美)这根本没有意义 唯一能献...
    与这个世界和平相处阅读 1,813评论 0 0
  • 1.解压,输入命令:tar xzf flie.tar.gz 2.配置:./configure 3.编译:make ...
    _李雷阅读 9,071评论 0 0