我在一个 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').
我知道我可以创建一个空的未使用的词汇表,但是您有什么更好的解决方案吗?