在 Django Rest Framework GenericViews 上进行缓存

问题描述 投票:0回答:1

我没有找到有关如何配置 Django Rest Framework 通用视图缓存的信息。我是否必须覆盖获取消息并添加自己的@method_decorator?这对我来说感觉不一般。

class BlogTags(generics.ListAPIView):
    queryset = CustomContentBlogTag.objects.all()
    serializer_class = CustomContentBlogTagSerializer
    permission_classes = [AllowAny]

    @method_decorator(cache_page(60 * 60 * 24))
    def get(self, request, *args, **kwargs):
        return super().get(request, *args, **kwargs)

我找到的文档:
缓存:https://www.django-rest-framework.org/api-guide/caching/
通用视图:https://www.django-rest-framework.org/api-guide/generic-views/

在通用视图文档中,有一句话,查询集以某种方式缓存。但是,如果我想要缓存整个视图怎么办?

django django-rest-framework django-generic-views django-cache
1个回答
0
投票

您可以在

name
上使用
method_decorator
参数并装饰一个类。事实上,当你在课堂上使用它时,
name
是必需的。

示例:

@method_decorator(cache_page(60 * 5), name="list")
class MyView(mixins.ListModelMixin, GenericViewSet):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.