【发布时间】:2019-01-01 02:36:40
【问题描述】:
我只想对 ViewSet 使用缓存太慢 :(,使用 Django REST 框架。
我已经这样做了:
...
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from django.views.decorators.vary import vary_on_cookie
...
class PRPKViewSet(viewsets.ModelViewSet):
serializer_class = PrpkSerializer
queryset = Prpk.objects.all().order_by('begin')
# Authentification !
permission_classes = (IsAuthenticated,)
# Only 'get' method
http_method_names = ['get']
# Cache requested url for each user for 2 hours
# @method_decorator(vary_on_cookie)
@method_decorator(cache_page(60*2))
def get_queryset(self):
""" allow rest api to filter by submissions """
queryset = Prpk.objects.all().order_by('begin')
highway = self.request.query_params.get('highway', None)
if highway is not None:
queryset = queryset.filter(highway=highway)
return queryset
但是在查询时,我有这个错误:
TypeError: _wrapped_view() missing 1 required positional argument: 'request'
Memcached 已安装。
那么,我可以只缓存一个 ViewSet(不使用扩展吗?)?
非常感谢。
F.
【问题讨论】:
标签: django caching django-rest-framework memcached