update()调用后的Django queryset?

时间:2017-04-10 09:41:37

标签: python django django-rest-framework

更新查询集后,

queryset.update(quantity=F('quantity') + increment_amount)

serializer = MySerializer(queryset, many=True, context={'product': product})

serializer.data # here sometimes wrong old data
queryset.values() # shows correct data.

如果我评估queryset(在DRF中),它是否包含我在上面做的更新?

我的队友发现有时DRF序列化数据没有更新的信息。

但是queryset.values()会显示正确的更新信息。

我无法重现这一点,我们很难谷歌。

1 个答案:

答案 0 :(得分:0)

  

如果我评估queryset(在DRF中),它是否包含我在上面做的更新?

应该。

  

我的队友发现有时DRF序列化数据没有更新信息。

因为您在执行更新后没有重新评估查询集。

  

但queryset.values()显示正确的更新信息。

因为这会重新评估查询集。

尝试:

queryset.update(quantity=F('quantity') + increment_amount)

serializer = MySerializer(queryset.all(), many=True, context={'product': product})

serializer.data # Should always contain up to date data.