如何使用ignore Context = True在update方法中设置Plone autoform的值

时间:2011-06-29 16:48:53

标签: plone zope

我正在尝试创建一个表单,我将值存储在上下文之外。存储已完成并且运行良好但现在我希望更新方法在渲染过程中填写表单。所以我重写了Form类的更新方法:

def update(self):
    super(ConfigurationForm,self).update()
    form = self.request.form
    if not form:
        #We are on a rendering process
        provider = self.getProvider()
        settings = provider.get()
        #TODO: update widget values !?

settings是一个dict,其中键等于Interface字段的名称。

所以我尝试了很多方法来更新小部件值:

  • 使用dataconverter(太复杂,不知道这是否是唯一的方法
  • 更新self.request.form dict并再次调用更新方法
  • 玩对象

实现这一目标的好方法是什么? (支持各种领域?)

1 个答案:

答案 0 :(得分:4)

不要做ignoreContext。覆盖getContent()以返回dict。 dict将用作伪上下文。