Django:更新不同的查询集更新所有记录

时间:2016-11-24 10:26:12

标签: python django distinct django-queryset

由于一个我不明白的原因,当我创建一个有区别的查询集并对其进行更新时,Django会更新查询集中的所有项目,就好像它首先没有区别一样

例如:

items = Item.object.filter(SOME-FILTERS).order_by('gender').distinct('gender')
items.update(quantity=F('quantity') - 1)

结果是2行更新

如果我遍历项目,它只更新1:

for item in items:
    item.quantity -= 1
    item.save()

1 个答案:

答案 0 :(得分:0)

我发现此问题的方法是执行以下操作。

queryset = Product.objects.values('manufacturerCode').distinct()
queryset = queryset.filter(FreeStock__gt = 0)