每个 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() 返回空字符串。