在批注中添加树
collective.btrees的Python项目详细描述
内容
Documentation
Target audience
这是一个集成程序包。
Installation and goal
将collective.btrees添加到构建中的鸡蛋中。添加到 如果你在3.2或更低的位置,也可以使用zcml。无需进一步 在plone ui中安装。
这使得一些小适配器可用于存储btrees 对象上的批注。中的所有btree都有适配器 BTrees模块。适配器使btrees的公共方法 适配器中提供。当你想要这个和当你 明白这意味着什么。:-)
Example usage
通常您需要创建自己的适配器来覆盖 设置,至少是用于存储批注的键。把这个放进去 适配器.py:
from zope.interface import implements from zope.interface import Interface from collective.btrees.interfaces import IOOBTreeContainer from collective.btrees.adapters import OOBTreeContainer class IFormValuesContainer(IOOBTreeContainer): pass class FormValuesContainer(OOBTreeContainer): implements(IFormValuesContainer) ANNO_KEY = 'my.package.formvalues' def _check_key(self, key): if not isinstance(key, basestring): raise TypeError("base string expected as key") def _check_value(self, value): if not isinstance(value, dict): raise TypeError("dictionary expected as value")
在zcml中注册适配器:
<adapter for="zope.interface.Interface" provides=".adapters.IFormValuesContainer" factory=".adapters.FormValuesContainer" />
在浏览器视图中使用它来存储请求表单 btree中的字典(如果出于某种原因 网址:
container = IFormValuesContainer(self.context) key = 'my key' # maybe use the user id as key value = self.request.form container.insert(key, value) container.get(key) # will return value
Compatibility
我在plone 3.3和4.1上试过这个。它可能适用于其他版本 也。