我创建了一个表单模型,如下所示:
from plone.app.directives import Form
class IFormSchema(form.Schema):
foobar = schema.Bool(title=u"Just another field")
我想根据这个定义注册一个适配器:
@component.adapter(IFormSchema)
@interface.implementer(ITreeSelectURLProvider)
def TreeSourceURL():
"""
"""
return "http://foobar"
注册正确。
但是,有一个问题我不知道 IFormSchema 是否由z3c.form
处理链的任何点中的任何对象直接提供,因此我可以调用:
provider = ITreeSelectURLProvider(someObject)
IFormSchema 是否直接应用于 z3c.form 或 plone.autoform 链的任何点中的某个对象(zope.interface.directlyProvides?)
如果没有,推荐的做法是什么,以便我可以针对模型注册适配器?我应该做哪些类来实现这个接口?
更糟糕的是,问题中的上下文不是真正的内容项,而是子表单对象。