【问题标题】:How to fetch only specific columns of a table in django? [duplicate]如何在 django 中仅获取表的特定列? [复制]
【发布时间】:2010-06-11 04:21:16
【问题描述】:

我见过这样的查询:

user = User.objects.all() or User.objects.filter(username = username)

即使我们不需要所有列,也会获取表的所有列。我们有更好的方法来编写数据库查询吗?如果是,为什么我们不经常看到该代码?

【问题讨论】:

    标签: python django


    【解决方案1】:

    QuerySet.only()QuerySet.defer() 可用于优化 ORM 将提取哪些字段,将其他字段推迟到模型上的适当属性被访问。

    【讨论】:

      【解决方案2】:

      使用 django 1.8: 使用 values_list

      Entry.objects.values_list('id', 'headline')
      

      https://docs.djangoproject.com/en/1.8/ref/models/querysets/

      【讨论】:

      • 我发现这是最合适的答案。
      【解决方案3】:

      如果您只需要作为字典的值,请使用 objects.values('')。它也更快。

      参见文档:http://docs.djangoproject.com/en/dev/ref/models/querysets/#values-fields

      【讨论】:

        猜你喜欢
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        相关资源
        最近更新 更多