如何以编程方式注册浏览器层
How to register a browser layer programmatically
我知道可以使用 GenericSetup 和一个 XML 文件注册浏览器层,但我需要以编程方式进行。
这可能吗?
给你:
>>> from plone.browserlayer.tests.interfaces import IMyProductLayer
>>> from plone.browserlayer import utils
>>> IMyProductLayer in utils.registered_layers()
False
>>> utils.register_layer(IMyProductLayer, name='my.product')
>>> IMyProductLayer in utils.registered_layers()
True
复制自https://github.com/plone/plone.browserlayer/blob/master/plone/browserlayer/README.rst
如果您只想在测试请求中显示浏览器层,可以使用 ZCA 并直接向测试请求提供浏览器层接口:
from zope.interface import directlyProvides
from my.product.interfaces import IMyProductBrowserLayer
directlyProvides(self.request, IMyProductBrowserLayer)
我知道可以使用 GenericSetup 和一个 XML 文件注册浏览器层,但我需要以编程方式进行。
这可能吗?
给你:
>>> from plone.browserlayer.tests.interfaces import IMyProductLayer
>>> from plone.browserlayer import utils
>>> IMyProductLayer in utils.registered_layers()
False
>>> utils.register_layer(IMyProductLayer, name='my.product')
>>> IMyProductLayer in utils.registered_layers()
True
复制自https://github.com/plone/plone.browserlayer/blob/master/plone/browserlayer/README.rst
如果您只想在测试请求中显示浏览器层,可以使用 ZCA 并直接向测试请求提供浏览器层接口:
from zope.interface import directlyProvides
from my.product.interfaces import IMyProductBrowserLayer
directlyProvides(self.request, IMyProductBrowserLayer)