如何禁用Django REST Framework缓存?

Ger*_*tar 10 django django-cache django-rest-framework

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

还有一件事 - 当django视图呈现时,所有数据都可以,而不是DRF视图.

这是我正在使用的序列化器/ 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
Run Code Online (Sandbox Code Playgroud)

all*_*llo 10

你可以在这里阅读有关django queryset缓存的信息.最好的建议似乎是:重新运行该.all()方法以获得新的结果.只是object.property可能会给你缓存的结果.

  • 啊,真丢脸。谢谢,我只需要使用 `WorkOperation.objects.all()` 而不是 return `self.queryset` 。我的不专心。 (3认同)