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

时间:2015-06-04 14:39:08

标签: plone dexterity

我正在尝试在dexterity.EditForm中禁用小部件,但我收到错误。

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

class IRestaurant(IPlace):

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

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

以下是dexterity.EditForm类的代码:

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对象。

1 个答案:

答案 0 :(得分:1)

使用mode属性可能会更好。

尝试这样的事情:

from z3c.form.interfaces import HIDDEN_MODE

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