在视图上应用plone.app.caching操作';Plone中的HTTP响应
我有一个为AJAX返回JSON负载的自定义视图:在视图上应用plone.app.caching操作';Plone中的HTTP响应,plone,Plone,我有一个为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.
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小时” 您希望在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映射到所需的操作(例如,适度缓存)
有关如何定义规则集并将视图映射到规则集的信息,请参见;了解如何管理Plone的规则集。我尝试在portal_设置下导出缓存策略,但结果是一个空文件:-这里有任何示例说明如何使用GenericSetup XML将操作映射到数据源吗?我看到了相同的示例。我想知道导出是否只在您仍在使用CacheSetup时起作用。相反,您应该导出plone.app.registry设置(“在portal_设置中导出配置注册表模式”),并在那里查找plone.app.caching设置。您要查找的主要是operationMapping字段。请注意,您不需要定义自己的rulesetType。如果默认的plone.app.caching规则集类型对您来说足够好,那么您可以在Martin的答案中的cache:ruleset中指定例如ruleset plone.content.itemView。