首页 > 解决方案 > Python - 有没有办法在序列化后记忆计算?

问题描述

在使用 Django REST 序列化查询集之后,是否有一种既定的方法来记忆或缓存一些计算?我需要按某些属性对一组对象进行分组。

这个计算每次请求都会发生,但序列化的数据根本不是动态的,它每 1-2 天更改一次,所以我想以某种方式缓存它。

class ServiceViewSet(viewsets.ModelViewSet):
    queryset = Service.objects.all()
    serializer_class = ServiceSerializer

    def list(self, request, *args, **kwargs):
        service_list = self.serializer_class(self.queryset, many=True).data

        # I want to memoize calculations below
        groupped_services = defaultdict(list)
        for service in service_list:
            category_model = service.get('category_m', None)
            if category_model:
                groupper = category_model.get('category_title')
                groupped_services[groupper].append(service)
        return Response(groupped_services)

也许记忆序列化会更有用?但我不知道如何实现这一目标。

标签: pythondjangocachingdjango-rest-frameworkmemoization

解决方案


推荐阅读