跳转到主要内容

在注释中添加btrees

项目描述

文档

目标受众

这是一个为集成者提供的包。

安装和目标

将collective.btrees添加到您的buildout中的eggs。如果您使用Plone 3.2或更低版本,请将其添加到zcml中。在Plone UI中无需进一步安装。

这提供了一些小的适配器,可以在对象注释中存储btrees。为BTrees模块中的所有btrees提供了适配器。适配器使btrees的公共方法在适配器中可用。当您需要此功能且理解其含义时使用它。:-)

示例使用

通常您将想要创建一个自己的适配器来覆盖一些设置,至少是存储注释的键。在adapters.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

兼容性

我已在Plone 3.3和4.1上尝试了此方法。它可能在其他版本上也能正常工作。

作者

Maurits van Rees

变更日志

1.1 (2012-06-05)

  • 更改了setup.py的url,以指向github collective。 [maurits]

1.0 (2012-05-16)

  • 首次发布 [maurits]

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

collective.btrees-1.1.zip (15.1 kB 查看哈希值)

上传时间 源代码

由以下支持