2010-05-19 3 views
3

Я хотел бы зарегистрировать интерфейс маркера, чтобы добавить его в объекты в ZMI. Мой продукт configure.zcml содержит:Как зарегистрировать интерфейс маркера, чтобы он отображался в ZMI Plones?

<interface interface=".interfaces.IMarkerInterface" /> 

и, после переустановки, интерфейс отображается в списке доступных интерфейсов. Но если я попытаюсь добавить его к объекту в ZMI, я получу ComponentLookupError. Чего не хватает?

+0

Можете ли вы включить полную отслеживание ошибки? –

+0

Я добавил фиктивный , который предоставляет интерфейс, о котором идет речь, и теперь он работает, но я не знаю почему. – joeforker

ответ

4

Это работало Хорошо для меня.

Я тестировал его в Plone 4.0.3

Создан пакет с Пастер:

paster create -t plone bogus.interface

С помощью этого interfaces.py файла:

from zope.interface import Interface 

class IBogusInterface(Interface): 
    """ Marker bogus interface 
    """ 

И этот configure.zcml файл:

<configure 
    xmlns="http://namespaces.zope.org/zope" 
    xmlns:five="http://namespaces.zope.org/five" 
    xmlns:i18n="http://namespaces.zope.org/i18n" 
    i18n_domain="bogus.interface"> 

    <five:registerPackage package="." initialize=".initialize" /> 

    <!-- -*- extra stuff goes here -*- --> 
    <interface interface=".interfaces.IBogusInterface" /> 

</configure> 

Вы уверены, что ничего не получили?

3

Также обратите внимание, что, по-видимому, интерфейсы маркеров должны быть пустыми. Они не могут содержать атрибуты или методы - если они это сделают, они не появятся в ZMI.

Смежные вопросы