2017-05-25 38 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中不可用)。

相关问题