【发布时间】:2012-11-15 19:07:46
【问题描述】:
这是一个非常基本的设计问题,但我似乎找不到答案。我将使用一个非常简单的示例,但我关心的是模型级计算(在本示例中为“2+2”)变得复杂的情况。
假设我正在设计一个在 Zope 或 Plone 中运行的应用程序;它的工作是添加两个数字。 Dexterity 让我可以轻松地创建带有字段 addend1 和 addend2 的内容类型,并将为我生成添加、编辑和显示表单。我可以修改显示表单以显示一个名为“sum”的字段,但“sum”是我的模型中大量计算的结果,我不想在“add”或“edit”表单中显示它,因为我不需要它作为输入,只是作为计算的结果。我不想在我的视图中计算它,因为它很昂贵,我想在最初计算后重用它,而且我不希望我的“视图”需要任何关于我如何进行计算的知识。
那么,对于与结果呈现无关的模型工作,什么是正确的“zca”ish 方法?我是否创建一个类似 ISum 的接口并创建一个适配器,将我的内容类型转换为包含总和的内容类型,然后为 ISum 接口做一个视图?如果不是,那是什么?搜索 PP4D 和 Zope 3 开发人员手册没有帮助。
提前感谢您提供任何见解。
【问题讨论】:
标签: plone dexterity z3c.form zope3