4

如何创建混合类型(即,保持模型驱动类型的便利性但根据需要利用模式驱动类型的类型)?

我最近的探索使我将模型驱动的敏捷类型作为最方便的敏捷开发方法。我一直在关注这篇文章: http: //developer.plone.org/reference_manuals/external/plone.app.dexterity/model-driven-types.html与此处记录的模式驱动类型相反:http://developer。 plone.org/reference_manuals/external/plone.app.dexterity/schema-driven-types.html

混合方法源于我在引用中遇到的一个问题,到目前为止,使用模型驱动类型的行为无法预测。我希望模式驱动的定义会给我在这种情况下更细粒度的控制。

4

1 回答 1

6

您可以基于模型创建架构:

from plone.supermodel import model

class IMySchema(model.Schema):
    model.load('path/to/model.xml')

Python 模式中定义的任何字段都将优先于模型中定义的具有相同名称的字段。

模型在 ZCML 配置阶段结束时加载。这意味着有一个警告:您不能在任何地方的模块范围内引用模型中的字段。例如,使用 @form.default_value(IMySchema['foo']) 装饰器注册默认值将不起作用,因为在导入时执行装饰器时该字段尚未加载。

于 2013-07-09T22:01:01.710 回答