使用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)
也许记住序列化会更有用吗?但是我不知道该怎么做。