使用之间有什么区别:
Blabla.objects.values('field1', 'field2', 'field3')
和
Blabla.objects.only('field1', 'field2', 'field3')
最佳答案
假设Blabla
在您的问题以及field4
中都包含字段,
Blabla.objects.only('field1', 'field2', 'field3')[0].field4
将返回该对象的
field4
的值(使用新的数据库查询来检索该信息),而Blabla.objects.values('field1', 'field2', 'field3')[0].field4
会给
AttributeError: 'dict' object has no attribute 'field4'
这是因为
.values()
根据现有的ValuesQuerySet
返回一个QuerySet
,该QuerySet
本质上是字典列表(在某种意义上,普通的Blabla
是对象的列表)。关于django - values()和only()之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11974691/