2011-01-28 6 views
4

/school1/document-rules에 개체가 있다고 가정합니다."심볼릭 링크"(* nixes 용어)와 같은 것이 있습니까? Plone의 ZODB에있는 객체는 있습니까?

다른 문맥에서 /school2을 가정하면 /school1/document-rules에서 사용할 수있는 동일한 document-rules이 필요합니다.

ZODB에서 /school1/document-rules/school2/document-rules은 두 개의 다른 개체를 가짐을 의미합니다.

내가 할 수 있는지 알고 싶습니다 /school2/document-rules참조/school1/document-rules. 따라서 /school2/document-rules은 "ReferenceDocument", "ReferenceLink"또는 /school1/document-rules을 가리키는 심볼 링크와 같은 것입니다.

왜? 이 문서는 동일하지만 때로는 다른 문맥에서 동일한 문서를 갖는 것이 더 의미가 있습니다 (의미 적 용어로). 컨텍스트에 따라 렌더링되는 포틀릿이 있는데, document-rules을 복제하고 싶지 않습니다.

내가 찾고있는 것이 있습니까? Bultin 또는 모듈 사용?

+0

참조되는 개체가 적절한 'Persistent'인스턴스 인 한, 개체 자체를 직접 사용하지 않는 이유는 무엇입니까? 'Persistent' 객체는 그들 만의 정체성을 가지고 있습니다. DB가 복사하지 않습니다. 내가 놓친 게 있니? – Dirk

답변

7

SimpleAlias 원하는 것을 수행합니다. 나는 그것을 사용했고 그것은 잘 작동한다. 당신도 볼 수 있습니다 collective.alias

1

ZODB는 평범한 Python에서 기대하는 것처럼 투명하게 참조를 처리합니다. 좋은 설명이 here입니다.

개체를 삭제하려는 경우 동일한 개체에 대한 여러 참조를주의해야합니다. 이를 위해서는 파이썬 표준 라이브러리의 weakref와 동일한 weakref module from ZODB을 사용하여 'symlinks'에 약한 참조를 사용하고 싶을 수도 있습니다.

+0

그래서 다른 객체에 대한 weakreference를 구현하는 content-type을 생성해야합니까? –