DJANGO-减少queryset中的字段数量

DJANGO-减少queryset中的字段数量,django,django-queryset,Django,Django Queryset,我有一个模型产品,有很多字段(~50)。 我有一个过滤器,如: sale = Product.objects.filter(id=2) 但是这给了我id=2的所有50个字段,所以我尝试只添加以减少queryset大小,因为我只需要2个字段: sale = Product.objects.filter(id=2).only("Origin","Price") 现在我想用sale获取价格。价格,但我有错误 'QuerySet' object has no

我有一个模型产品,有很多字段(~50)。 我有一个过滤器,如:

sale = Product.objects.filter(id=2)
但是这给了我id=2的所有50个字段,所以我尝试只添加以减少queryset大小,因为我只需要2个字段:

sale = Product.objects.filter(id=2).only("Origin","Price")
现在我想用sale获取价格。价格,但我有错误

'QuerySet' object has no attribute 'Price'
您使用它不会返回单个
Product
对象,而是
Product
s的
QuerySet
。因此,您不能使用
sale.Price
,因为它不是单个
产品
,而是
产品
的集合

您应该使用来检索
产品
对象。由于
.get(…)
将立即进行查询,因此需要将
.only(…)
子句放在前面:

sale = Product.objects.only('Origin', 'Price').get(id=2)
sale=Product.objects.only('Origin','Price').get(id=2)