Есть ли что-то вроде «символической ссылки» (в терминах * nixes), но для объектов в ZODB в Plone? - PullRequest
4 голосов
/ 28 января 2011

Предположим, у меня есть объект в /school1/document-rules.

Предположим, в другом контексте, /school2, мне нужно иметь тот же document-rules, который доступен в /school1/document-rules.

В ZODB наличие /school1/document-rules и /school2/document-rules означает, что у меня есть два разных объекта.

Я хотел бы знать, возможно ли сделать /school2/document-rules reference /school1/document-rules.Итак, /school2/document-rules будет что-то вроде «ReferenceDocument», «ReferenceLink» или что-то вроде символической ссылки, которая будет просто указывать на /school1/document-rules.

Почему?Документ один и тот же, но иногда имеет смысл (в семантических терминах) иметь один и тот же документ в разных контекстах.У меня есть портлеты, которые отображаются в зависимости от их контекста, и я не хочу дублировать document-rules.

Существует ли что-то вроде того, что я ищу?Бултин или с помощью модуля?

Ответы [ 3 ]

7 голосов
/ 19 февраля 2011

SimpleAlias ​​ делает то, что вы хотите.Я использовал это, и это работает хорошо.Вы также можете посмотреть на colle.alias

1 голос
/ 16 марта 2011

Я использовал для этого продукт под названием RedirectionTool .

1 голос
/ 30 января 2011

ZODB обрабатывает ссылки прозрачно, как и следовало ожидать в простом Python.У вас есть хорошее объяснение здесь .

Вы должны следить за несколькими ссылками на один и тот же объект, когда вы хотите удалить объект.Для этого вы можете использовать слабые ссылки для своих 'символических ссылок', используя модуль weakref из ZODB , который эквивалентен слабому файлу стандартной библиотеки Python.

...