Я работаю над пакетом , который включает панель управления, созданную с помощью plone.app.registry. Я следовал учебнику Тимо , но, пытаясь добавить к нему дополнительную запись, я сталкиваюсь с печально известным 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([]))
Третий вопрос может состоять в том, как проверить, была ли удалена запись в одно время.
Любая другая рекомендация?