由于一个我不明白的原因,当我创建一个有区别的查询集并对其进行更新时,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()
答案 0 :(得分:0)
我发现此问题的方法是执行以下操作。
queryset = Product.objects.values('manufacturerCode').distinct()
queryset = queryset.filter(FreeStock__gt = 0)