假设我在/school1/document-rules
中有一个对象。
假设在另一个上下文/school2
中,我需要document-rules
中提供的/school1/document-rules
{。}}。
在ZODB中,/school1/document-rules
和/school2/document-rules
表示我有两个不同的对象。
我想知道是否可以/school2/document-rules
参考 /school1/document-rules
。因此,/school2/document-rules
类似于“ReferenceDocument”,“ReferenceLink”或类似于指向/school1/document-rules
的符号链接。
为什么呢?文档是相同的,但有时在不同的上下文中使用相同的文档更有意义(在语义上)。我有根据其上下文呈现的portlet,我不想复制document-rules
。
我喜欢的东西存在吗? Bultin还是使用模块?
答案 0 :(得分:7)
SimpleAlias做你想要的。我用过它并且效果很好。您还可以查看collective.alias
答案 1 :(得分:1)
ZODB透明地处理引用,正如您在普通Python中所期望的那样。你有一个很好的解释here。
当您要删除对象时,应注意同一对象的多个引用。为此,您可能希望使用weakref module from ZODB对您的'符号链接'使用弱引用,这相当于Python标准库的weakref。
答案 2 :(得分:1)
我为此使用了名为RedirectionTool的产品。