Plone 使用灵活的z3c.relationfield返回引用
使用z3c.relationfield.schema.RelationList或RelationChoice,可以维护与其他灵巧内容对象的关系。在原型中,我们有一个功能上下文。获取引用当前“上下文”对象的对象列表。在z3c.relationfield或灵巧性方面有相似之处吗?在灵巧性方面,获得“反向引用”的标准方法是什么?以下代码取自 正在工作:Plone 使用灵活的z3c.relationfield返回引用,plone,dexterity,Plone,Dexterity,使用z3c.relationfield.schema.RelationList或RelationChoice,可以维护与其他灵巧内容对象的关系。在原型中,我们有一个功能上下文。获取引用当前“上下文”对象的对象列表。在z3c.relationfield或灵巧性方面有相似之处吗?在灵巧性方面,获得“反向引用”的标准方法是什么?以下代码取自 正在工作: from Acquisition import aq_inner from zope.component import getUtility fro
from Acquisition import aq_inner
from zope.component import getUtility
from zope.intid.interfaces import IIntIds
from zope.security import checkPermission
from zc.relation.interfaces import ICatalog
def back_references(source_object, attribute_name):
""" Return back references from source object on specified attribute_name """
catalog = getUtility(ICatalog)
intids = getUtility(IIntIds)
result = []
for rel in catalog.findRelations(
dict(to_id=intids.getId(aq_inner(source_object)),
from_attribute=attribute_name)
):
obj = intids.queryObject(rel.from_id)
if obj is not None and checkPermission('zope2.View', obj):
result.append(obj)
return result