У меня есть эта пользовательская схема, определенная в надстройке plone, которая будет использоваться для нескольких веб-сайтов.
class IUser(Interface):
userid = schema.TextLine(
title=_("User id"),
required=True,
constraint=validate_userid,
)
email = schema.TextLine(
title=_(u"Email"),
required=True,
constraint=validate_email
)
optional_type = schema.Choice(
title=_(u"User type"),
vocabulary="user_types",
required=True,
)
Иногда поле optional_type
иногда требуется, но не обязательно.user_types
сохраняется в portal_vocabularies
.Я хочу, чтобы поле использовалось только тогда, когда словарь существует, и я хочу, чтобы оно игнорировалось, когда определение отсутствует.
Я имею в виду, я хочу, чтобы это поле работало для веб-сайтов, где оно используется, но для пользователяСхема также для работы в другом случае.На данный момент я получаю эту ошибку: ComponentLookupError: (<InterfaceClass zope.schema.interfaces.IVocabularyFactory>, 'user_types').
Я знаю, что могу создать пустой неиспользуемый словарь, но у вас есть какое-нибудь лучшее решение здесь?