我正在尝试从Wagtail缓存API视图之一。我已经搜索了缓存Django REST的方法,并通过在响应中注入Cache-Control
找到了一种方法。
如此处所示:http://www.django-rest-framework.org/api-guide/responses/#standard-httpresponse-attributes
该方法不适用于Wagtail,因为串行器是Wagtail的一部分。有办法吗?
答案 0 :(得分:3)
Wagtail API端点在wagtail.api.v2.endpoints
(和其他位置,例如wagtail.images.api.v2.endpoints
中定义,可以被子类化以提供自定义行为,例如在响应上设置其他标头。例如,添加缓存-控制PagesAPIEndpoint
的详细信息视图的标题:
from wagtail.api.v2.endpoints import PagesAPIEndpoint
class CachedPagesAPIEndpoint(PagesAPIEndpoint):
def detail_view(self, request, pk):
response = super().detail_view(request, pk)
response['Cache-Control'] = 'no-cache'
return response
然后in your api.py,注册您的自定义CachedPagesAPIEndpoint
来代替标准PagesAPIEndpoint
。