Plone- 在 dexterity.EditForm 中,为什么尝试禁用导致 ConstraintNotSatisfied 错误的小部件?

Plone- In a dexterity.EditForm why is attempting to disable a widget causing a ConstraintNotSatisfied error?

我试图禁用 dexterity.EditForm 中的一个小部件,但出现错误。

这是我的界面的一部分 class,其中包含我要禁用的特定小部件

class IRestaurant(IPlace):

    restaurant_code = schema.TextLine(title=_(u""),
                                      required=False,
                        )

IPlace 是 IRestaurant 继承的 form.Schema。 (来自 plone.directives)

这是 dexterity.EditForm class 的代码 I:

class Edit(dexterity.EditForm):
    grok.context(IRestaurant)

    def updateWidgets(self):
        super(Edit, self).updateWidgets()
        self.widgets['restaurant_code'].disabled = True

当我进入编辑表单时,出现错误:

ConstraintNotSatisfied: True

为什么会出现此错误,我该如何解决?

另外,我使用的Plone版本是Plone 4.3.5

编辑:当我尝试打印 self.widgets['restaurant_code'].disabled 的对象类型时,它说它是一个 NoneType 对象。

使用 属性 模式可能运气会更好。

尝试这样的事情:

from z3c.form.interfaces import HIDDEN_MODE

def updateWidgets(self):
    super(Edit, self).updateWidgets()
    self.widgets['restaurant_code'].mode = HIDDEN_MODE