Ich verwende Django Rest Framework und die DRF-Extensions zum Caching.Warum cachesResponseMixin die Drf-Erweiterungen zwischengespeichert?
Ich habe ein Viewset mit benutzerdefinierten list()
und retrieve()
Methoden. Ich kann @cache_response()
Dekoratoren auf die Methoden setzen und es wird erfolgreich und setzt auf den Cache. Wenn ich jedoch versuche, CacheResponseMixin
zu verwenden, passiert nichts.
Works:
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)
funktioniert nicht:
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)
keine Fehler gegeben, mein Cache-Eintrag einfach nicht erstellt wird, erhalten.
haben Sie versucht, die z. Listenmethode? Vielleicht gibt es ein Problem bei Cache-Wrapping bei 'CacheResponseMixin'. – trinchet