Мне нужно реализовать кэш Redis на моем сайте Django Rest Framework. Но
когда я загружаю тест с использованием декоратора cache_page с классом, он улучшает запрос в секунду, но возникает ошибка «У объекта функции нет атрибута get_extra_actions»
Views.py
@cache_page(CACHE_TTL)
class ParameterViewSet(viewsets.ModelViewSet):
"""
Lists all the parameters present in the system.
Can pass filter with parent set to null to get top level
Parameters.
"""
permission_classes = (IsAuthenticated,)
queryset = Parameter.objects.all()
filter_fields = ('parent', 'target_type',)
serializers = {
'default': ParameterSerializer,
'list': ParameterSerializer,
'detail': ParameterSerializer,
'update': ParameterWriteSerializer,
'create': ParameterWriteSerializer,
'delete': ParameterWriteSerializer,
}
def get_serializer_class(self):
return self.serializers.get(
self.action,
self.serializers['default'])
def get_queryset(self):
results = Parameter.objects.all().filter(weight__gt=0).order_by(
'order_number')
if 'no_parent' in self.request.query_params:
return results.filter(parent=None)
return results
В своем Settings.py я также добавил следующий код.
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
Также я должен добавить ниже промежуточное программное обеспечение соответственно
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
# place all other middlewares here
'django.middleware.cache.FetchFromCacheMiddleware',
]
это тоже не работает.