如何在django中仅获取表的特定列?

时间:2010-06-11 04:21:17

标签: python django

我见过这样的查询:

user = User.objects.all() or User.objects.filter(username = username)
即使我们不需要所有列,

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

3 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:23)

使用django 1.8: 使用values_list

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

https://youtu.be/BXev6625-Us?t=2m30s

答案 2 :(得分:6)

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

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