캐싱을 위해 Django Rest Framework와 DRF-Extensions를 사용하고 있습니다.drf-extensions CacheResponseMixin 캐싱이 왜 아닌가요?
사용자 정의 list()
및 retrieve()
메소드가있는 뷰 세트가 있습니다. 메서드에 @cache_response()
데코레이터를 넣을 수 있으며 캐시에 성공적으로 도달하고 설정합니다. 그러나 CacheResponseMixin
을 사용하려고하면 아무 일도 일어나지 않습니다.
작품 :
class SeriesViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = SeriesSerializer
def get_queryset(self):
series_type = EntityType.objects.get(name='series')
return Container.objects.filter(type=series_type)
@cache_response()
def list(self, request):
series = self.get_queryset()
serializer = SeriesSerializer(series, many=True)
return Response(serializer.data)
@cache_response()
def retrieve(self, request, pk=None):
name = pk
series = self.get_queryset()
show = series.get(data__title=name)
serializer = SeriesSerializer(show)
return Response(serializer.data)
은 작동하지 않습니다
class SeriesViewSet(CacheResponseMixin, viewsets.ReadOnlyModelViewSet):
serializer_class = SeriesSerializer
def get_queryset(self):
series_type = EntityType.objects.get(name='series')
return Container.objects.filter(type=series_type)
def list(self, request):
series = self.get_queryset()
serializer = SeriesSerializer(series, many=True)
return Response(serializer.data)
def retrieve(self, request, pk=None):
name = pk
series = self.get_queryset()
show = series.get(data__title=name)
serializer = SeriesSerializer(show)
return Response(serializer.data)
오류가 주어지지, 내 캐시 항목이 간단하게 생성되지 않습니다.
예를 들어. 목록 방법? 아마도 CacheResponseMixin에서 캐시 배치에 문제가있을 수 있습니다. – trinchet