4

假设我有一个对象/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 还是使用模块?

4

3 回答 3

7

SimpleAlias做你想做的事。我已经使用它并且效果很好。你也可以看看collective.alias

于 2011-02-19T14:27:01.723 回答
1

ZODB 透明地处理引用,就像您在普通 Python 中所期望的那样。你在这里有一个很好的解释。

当您要删除对象时,应注意同一对象的多个引用。为此,您可能希望使用ZODB 中的 weakref 模块为您的“符号链接”使用弱引用,该模块相当于 Python 标准库的 weakref。

于 2011-01-29T23:06:43.610 回答
1

为此,我使用了一个名为RedirectionTool的产品。

于 2011-03-15T22:46:22.473 回答