将对象保存到Plone 3.x中的另一个实例
答
简答:一般情况下可以,根据您的设置,您有各种选择。
如果我正确理解了您的问题和设置,您将在同一个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中不可用)。
忘了说,有13天前,我会发布一个链接到你的问题在我们的论坛,https://community.plone.org/t/stack-overflow-save-objects-to-another-instance-in -plone-3-X/4281 –