Я работаю над пакетом , который включает панель управления, созданную с использованием plone.app.registry. Я следовал учебнику Тимо , но при попытке добавить к нему дополнительную запись я сталкивался с печально известной KeyError: поле, для которого нет записи .
Итак, я есть пара вопросов о передовых методах:
Мой первый вопрос: пакет должен удалять свой реестр во время удаления?
Я использовал это в registry.xml моего пакета:
и это в metadata.xml :
1
profile-plone.app.registry:default
Но добавление 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([]))
Третий вопрос может заключаться в том, как проверить, была ли запись удалена в единое время.
Есть ли другие рекомендации?