基于接口存储成员数据的支持
项目描述
简介
此包提供了通过zope.schema类型schemata构建和管理成员属性的支持。它作为PAS属性插件安装,默认情况下将数据存储在ZODB中。
一旦安装了插件,您就可以像平常一样编写schema接口,例如。
>>> from zope.interface import Interface >>> from zope import schema >>> class Hobbies(Interface): ... """Details member's hobbies ... """ ... ... favorite_hobby = schema.TextLine(title=u"Favorite hobby") ... num_hobbies = schema.Int(title=u"Number of hobbies", min=0)
如果这在模块my.memberdata.schema中,您可以在Plone站点的acl_users/schema_properties/manage_propertiesForm中找到的schemata属性中添加以下内容
my.memberdata.schema.Hobbies
然后可以通过常规API访问属性,例如。
>>> member.getProperty('favorite_hobby')
请注意,字段名称必须是唯一的。如果字段在多个schemata中存在,则列表中列出的第一个schemata具有优先级。
默认字段
有一些默认字段,分布在几个schemata中。这些都在plone.app.memberschema.default中,包括
基础 – 全名和电子邮件地址 位置 – 位置和语言 详情 – 个人简介和主页 设置 – 其他个人设置
GenericSetup导入器
您可以使用GenericSetup以这种方式安装新的schemata。将名为memberschema.xml的文件添加到您的配置文件中,内容如下
<memberschema> <schema>my.memberdata.schema.Hobbies</schema> </memberschema>
如果您希望在添加自己的schemata之前清除列表,请在<memberschema />元素上设置属性purge="true"。默认情况下,您的新schema将位于列表末尾。您可以通过向<schema />元素添加一个insert-before或insert-after属性来更改顺序。值可以是另一个完全限定的接口名称,或者“*”,表示元素应位于最前面/最后面。
表单
本软件包通过使用plone.autoform包提供了一个成员数据编辑表单。默认情况下,它将每个模式列表在其自己的字段集中。您可以使用plone.autform期望的各种提示来注释您的模式界面,无论是手动、通过从plone.supermodel XML文件加载模式,还是使用plone.directives.form中的grokkers。有关更多详细信息,请参阅这些包。
默认提供了两种视图:'@@edit-profile'必须以查询字符串参数('id')的形式接收用户ID。它受zope2.ManageUsers权限保护。'@@my-profile'用于编辑当前用户的配置文件。它受cmf.SetOwnProperties保护。
请注意,此包没有在任何地方连接视图,因此您需要自己链接到它们,并且可能需要隐藏或覆盖Plone的标准'personalize_form'模板。
备用存储
PAS API仍然是获取和设置成员属性的标准方式。如果您想确保某个字段来自,例如,LDAP,最简单的方法通常是确保有一个合适的PAS插件被激活作为IPropertiesPlugin,位于schema_properties插件之前,并提供了相关的属性。
或者,如果您想实现自己的存储,可以实现一个IBags适配器。这应该适配插件(例如,您可以在插件类上设置一个自定义标记接口以实现此类覆盖),并且必须返回一个IBag - 真正的,只是一个可以设置值或从中检索值的对象。
致谢
plone.app.memberschema从Kapil Thangavelu的ore.member中汲取灵感。
变更日志
1.0a2 - 2009-07-12
跟上plone.autoform API的变化。[optilude]
1.0a1 - 2009-04-17
首次发布
项目详情
plone.app.memberschema-1.0a3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e999dc0ab029d119a5f0c8aa536bfe9b311c9b37d7b69bc536a9d64df8b451f2 |
|
MD5 | c1dbb7f446d0d1acd5294c2fdca839da |
|
BLAKE2b-256 | c0bd364f075257fffc3133e43d35c2a01d043d68b0e1fcf8acc8131da348bf6f |