如何禁用 Django REST Framework 缓存?

How to disable Django REST Framework caching?

我刚开始使用 django 和 DRF,遇到了一个问题,看起来像是 DRF 缓存响应。我的意思是 - 我可以更改对象、创建新对象或删除它 - 并且 DRF 保持响应,没有任何改变。例如,我创建了一个对象,但 modelViewSet 仍然 return 没有显示该对象的数据。但是,如果我直接请求它对象 - 它表明它已创建。任何其他动作也是如此。我在 DRF 中找不到关于缓存的话题,看起来我没有任何 django chaching 中间件,所以我不知道发生了什么。 只有一件事有帮助——重启服务器(我使用的是默认开发服务器)。

还有一件事 - 当数据由 Django 视图而不是 DRF 视图呈现时,所有数据都正常。

这是我正在使用的 serializers/modelViewSets 之一。尽可能简单。而且 - 我没有使用 django 缓存后端。至少 - 我的设置里没有。

class WorkOperationSerializer(serializers.ModelSerializer):
    class Meta:
        model = WorkOperation


class WorkOperationAPIView(viewsets.ModelViewSet):
    serializer_class = WorkOperationSerializer
    queryset = WorkOperation.objects.all()

    def get_queryset(self):
        return self.queryset

您可以阅读 here 关于 Django 查询集缓存的内容。最好的建议似乎是:重新运行 .all() 方法以获得新的结果。使用 object.property 可能会给您缓存结果。