z3c.relationfield.schema.RelationList または RelationChoice を使用すると、他の Dexterity コンテンツ オブジェクトとの関係を維持できます。Archetypes では、機能的なコンテキストがありました。getBRefs() を使用して、現在の「コンテキスト」オブジェクトを参照するオブジェクトのリストを取得します。z3c.relationfield または Dexterity に似たようなものはありますか? Dexterityで「後方参照」を取得する標準的な方法は何ですか?
質問する
464 次
1 に答える
8
から取られた次のコード
http://code.google.com/p/dexterity/issues/detail?id=234
は働いている:
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
于 2012-08-09T07:18:58.740 に答える