【问题标题】:how do I do "model" calculation in Plone or Zope如何在 Plone 或 Zope 中进行“模型”计算
【发布时间】: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


    【解决方案1】:

    使用事件;您可以在添加或编辑内容类型时注册事件处理程序,并在这些事件触发您的处理程序时在对象上设置值。

    【讨论】:

    • 谢谢。这是我尝试过的一种方法;不过,这感觉像是一种奇怪的做事方式。我欢迎更多关于这是否被认为是做我正在谈论的事情的标准方式的意见。如果是这样,我可以克服我的感受。
    • 好的,我看到 Martijn 是神,或者至少是半神,所以除非我在这里看到反驳,否则我将使用添加和编辑事件。再次感谢。
    • +1 表示 Martijn 的回答,没有反驳,证实了您对 Martijn 的神态的估计;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多