我正在尝试在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对象。
答案 0 :(得分:1)
使用mode属性可能会更好。
尝试这样的事情:
from z3c.form.interfaces import HIDDEN_MODE
def updateWidgets(self):
super(Edit, self).updateWidgets()
self.widgets['restaurant_code'].mode = HIDDEN_MODE