すべての Zope オブジェクトには独自の一意の ID ( _p_oid ) があります。
それを整数値に変換するには:
from Shared.DC.xml.ppml import u64 as decodeObjectId
oid = decodeObjectId(getattr(<Object instance>, '_p_oid'))
_p_oid を持つオブジェクト自体を取得することは可能ですか?
私はこれを試しました:
from ZODB.utils import p64
object = <RootObject instance>._p_jar[p64(oid)]
しかし、オブジェクトを取得した後、プロパティを変更できず、 object.absolute_url() が空の文字列を返すため、それは間違った方法のようです。