如何在Django中仅获取表的特定列?
我发现像这样的查询:
user = User.objects.all() or User.objects.filter(username = username)
会把表格里的所有列都取出来,即使我们并不需要所有的列。有没有更好的方法来写数据库查询呢?如果有的话,为什么我们不常看到这样的代码呢?
3 个回答
6
如果你只需要把值作为字典来用,可以使用 objects.values('')。这样做也更快。
查看文档:http://docs.djangoproject.com/en/dev/ref/models/querysets/#values-fields
43
在django 1.8中:使用values_list
Entry.objects.values_list('id', 'headline')
46
QuerySet.only()
和 QuerySet.defer()
是用来优化数据库查询的工具。它们可以帮助你选择要从数据库中获取哪些字段,而把其他字段暂时放一边,直到你真正需要用到这些字段的时候再去获取。