我有一个自定义视图,返回AJAX的JSON有效负载:
class DataSource(grok.CodeView):
"""
Generate JSON array needed to populate the fields
"""
grok.context(ISiteRoot)
grok.name("dgftreeselect-test-data")
def render(self):
self.request.response.setHeader("Content-type", "application/json")
return json.dumps(SAMPLE_DATA)
我想对生成的HTTP响应应用plone.app.caching的 moderateCaching 操作。
用Python表达我的意图的最短和最美的方式是什么?
如果它更简单......那就直接说“在浏览器/前端代理中缓存24小时”。
答案 0 :(得分:2)
您希望在ZCML中执行此操作,例如
<cache:rulesetType
name="my.package.DataSource"
title="My data source view"
description="Contains data stuff"
/>
<cache:ruleset
ruleset="my.package.DataSource"
for=".browser.DataSource"
/>
然后使用Plone UI或registry.xml导入将my.package.DataSource映射到您想要的操作(例如,适度缓存)。
有关如何为其定义规则集和地图视图,请参阅http://pypi.python.org/pypi/z3c.caching/2.0a1; http://pypi.python.org/pypi/plone.app.caching了解如何管理Plone的规则集。