私はキャッシングのために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