注册表 – Plone控制面板的最佳实践
我正在研究
package,其中包括使用plone.app.registry创建的控制面板.我跟着
Timo’s tutorial但是,当我试图添加一条额外的记录时,我面临着臭名昭着的KeyError:一个没有记录的字段.
所以我对最佳实践有几个问题: 我的第一个问题是:一个包必须在卸载时删除它的注册表? 我在我的包的registry.xml中使用了这个: <registry> <records interface="collective.nitf.controlpanel.INITFSettings" /> </registry> 这在metadata.xml上: <metadata> <version>1</version> <dependencies> <dependency>profile-plone.app.registry:default</dependency> </dependencies> </metadata> 但是在卸载配置文件中添加delete =“true”似乎不起作用.除了我在ZMI手动运行步骤之外,我还尝试通过名称列出所有记录而没有运气. 所以,我的第二个问题是:如何在卸载时优雅地删除控制面板记录? 要测试记录是否在注册表中,我执行以下操作: def setUp(self): self.portal = self.layer['portal'] setRoles(self.portal,TEST_USER_ID,['Manager']) # Set up the NITF settings registry self.registry = Registry() self.registry.registerInterface(INITFSettings) def test_record_sections(self): # Test that the sections record is in the control panel record_sections = self.registry.records[ 'collective.nitf.controlpanel.INITFSettings.sections'] self.failUnless('sections' in INITFSettings) self.assertEquals(record_sections.value,set([])) 第三个问题可能是如何测试记录是否在无意中被删除. 还有其他推荐吗? 解决方法
注意:我还没有直接在包中使用plone.app.registry.
是.从社区软件包的作者那里预期这一点至少是合理的.我希望plone.app.registry不会绊倒旧的已删除软件包中缺少的东西,就像它似乎在这里做的那样,但这可能很棘手.
在大多数GenericSetup文件中,remove =“True”有效.对这个具体案例不确定. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-7 – 如何让非特权用户在Win7中更改/添加路由? Op
- xaml – 覆盖默认主题WP7的自定义主题
- windows-mobile – 如何自动更新Windows Mobile应用程序
- Windows Server 2008网络版附带了什么IIS版本
- 在Windows 7中找不到IIS localhost页面
- windows – 获取在Bat文件中运行的exe的进程ID
- hyper-v-server-2012-r2 – Windows 10更新后无法连接Hyper
- 如何在Windows任务栏中删除多个emacs实例
- office365 – 使用Microsoft Graph API显示即将到来的Offic
- Windows – 替代远程桌面软件