更新查询集后,
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()
会显示正确的更新信息。
我无法重现这一点,我们很难谷歌。
答案 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.