公共关系的atfield
plonerelations.ATField的Python项目详细描述
简介
这个包允许您使用基于plone.app.relations
的关系
在原型领域。它在引用中公开了与标准相同的api
做,让它成为一个简单的替代品。
测试
初步测试,并设置我们的组件和一些基本内容
>>> from plonerelations.ATField import tests >>> tests.base_setup(portal) >>> ob1 = portal['ob1'] >>> ob2 = portal['ob2'] >>> ob3 = portal['ob3'] >>> ob4 = portal['ob4'] >>> ob5 = portal['ob5']
导入字段,创建其实例,使其多值
>>> from plonerelations.ATField.ploneRelationsATField import PloneRelationsATField >>> multiValueATField = PloneRelationsATField () >>> multiValueATField.multiValued = True >>> multiValueATField.relationship = 'test multi valued relationship'
将单个值设为1,以便进行良好测量
>>> singleValueATField = PloneRelationsATField () >>> singleValueATField.multiValued = False >>> singleValueATField.relationship = 'test single relationship'
创建接口
>>> from zope.interface import Interface >>> class IMyInterface (Interface): ... pass
在atfields上设置关系界面
>>> multiValueATField.relationship_interface = IMyInterface >>> singleValueATField.relationship_interface = IMyInterface
从ob1到objs 2和3建立多个关系,从ob4到ob5建立一个关系
>>> singleValueATField.set ( ob4, ob5 ) >>> multiValueATField.set ( ob1, [ob2,ob3] )
测试get方法是否返回正确的对象。multi返回列表
>>> list (multiValueATField.get( ob1 )) [<Demo ob2>, <Demo ob3>]>>> list (multiValueATField.getRaw( ob1, aslist=False)) ['ob2', 'ob3'] >>> list (multiValueATField.getRaw( ob1, aslist=True )) ['ob2', 'ob3']
sinlge返回一个对象
>>> singleValueATField.get ( ob4 ) <Demo ob5>>>> singleValueATField.getRaw( ob4, aslist=False ) 'ob5'>>> singleValueATField.getRaw( ob4, aslist=True ) ['ob5']
仔细检查plone.app.interface是否返回相同的值
>>> from plone.app.relations import interfaces >>> multiValueSource = interfaces.IRelationshipSource(ob1) >>> singleValueSource = interfaces.IRelationshipSource(ob4) >>> multiValueRelationships = list(multiValueSource.getRelationships()) >>> singleValueRelationship = list(singleValueSource.getRelationships()) >>> multiValueRelationships [<Relationship 'test multi valued relationship' from (<Demo ob1>,) to (<Demo ob2>,)>, <Relationship 'test multi valued relationship' from (<Demo ob1>,) to (<Demo ob3>,)>] >>> singleValueRelationship [<Relationship 'test single relationship' from (<Demo ob4>,) to (<Demo ob5>,)>]
检查relathinshiops是否提供接口
>>> IMyInterface.providedBy (singleValueRelationship[0]) True >>> IMyInterface.providedBy (multiValueRelationships[0]) True
检查是否删除
>>> multiValueATField.set ( ob1, [ob2,ob5] ) >>> list(multiValueSource.getRelationships()) [<Relationship 'test multi valued relationship' from (<Demo ob1>,) to (<Demo ob2>,)>, <Relationship 'test multi valued relationship' from (<Demo ob1>,) to (<Demo ob5>,)>] >>> singleValueATField.set ( ob4, ob1 ) >>> singleValueRelationship = list(singleValueSource.getRelationships()) >>> singleValueRelationship [<Relationship 'test single relationship' from (<Demo ob4>,) to (<Demo ob1>,)>]
更改日志
1.0-2011年10月10日
- 删除
__implements__
以与plone 4兼容。 [汉诺什] - 更新分发元数据,一些代码清理。 [汉诺什]
0.1-2008年5月20日
- 第一次释放。