如何在 django 中仅获取表的特定列? [复制]

Posted

技术标签:

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

我见过这样的查询:

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何在 django 中仅获取表的特定列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我想从django中的数据库中仅获取特定类别的产品(女性)产品

如何在 django rest 框架中仅使用特定变体对象将项目添加到愿望清单?

如何在特定模式中的所有表的选择列表中获取总行数和最大(时间戳)列

如何在mailchimp中仅获取字段(列)

如何在 Laravel 中仅向访客用户显示或隐藏我的表的一部分?

如何在HTML5中获取并打印表的多个列? (django,sqlite,html5)