2017-05-25 129 views
1

當在Plone 3.x中以編程方式創建對象(如News)時,是否可以將其保存到另一個實例中的文件夾?將對象保存到Plone 3.x中的另一個實例

+0

忘了說,有13天前,我會發佈一個鏈接到你的問題在我們的論壇,https://community.plone.org/t/stack-overflow-save-objects-to-another-instance-in -plone-3-X/4281 –

回答

2

簡答:一般情況下可以,根據您的設置,您有各種選擇。

如果我正確理解了您的問題和設置,您將在同一個ZODB中運行兩個Plone實例。

事情是這樣的:

ipdb> self.context 
<Application at > 
ipdb> self.context.SiteA 
<PloneSite at /SiteA> 
ipdb> self.context.SiteB 
<PloneSite at /SiteB> 

如果是這樣的話,你可以複製或移動對象到新的站點,通過以下調試會話證明:

ipdb> cpdata = self.context.SiteA.manage_copyObjects(['front-page']) 
ipdb> self.context.SiteB.manage_pasteObjects(cpdata) 
[{'new_id': 'copy_of_front-page', 'id': 'front-page'}] 
ipdb> self.context.SiteB['copy_of_front-page'].Title() 
'Welcome to Plone' 

對於例如,您可以執行添加事件訂戶的複製移動操作。

當然,你必須照顧權限設置。 我粘貼的示例工作,因爲我用的是用戶管理這是在應用程序的zope的acl_users夾界定。

但是從技術上講,你可以通過調整安全管理器來實現這個結果。

如果兩個Plone站點不在同一個ZODB中,請不要擔心:) 如果兩個站點中的一個(或兩者)都沒有運行Plone,那麼也有解決方案可以使用。

例如,您可以在站點A創建一個表單,帖子的網站B. 如果你已經在兩個站點之間SSO也可能是因爲改變action屬性的網址從/SiteA/folder1/add_form/SiteB/folder2/add_form微不足道。

另一種選擇是,當接收站點A的形式的數據,它工藝品與urllib而urllib2的至網站B的請求。在這種情況下,你會錯過很多請求模塊(在Python2.4中不可用)。

相關問題