2012-07-09 44 views
4

上失败我担心我可能会忽视的东西很明显,但我会的任何建议表示感谢。我在Plone的Ploneformgen表单文件夹中有一个名为'settings'的纯文本文件。下面的代码成功地改变时,我把它叫做一个Python脚本的形式使用替代观察时,窗体的领域之一(在一个字符串字段例如默认表达式)这个文件中的文本。的setText()的Plone对象

obj = context['settings'] 
obj.setText('Some text:2;More text:2') 
obj.reindexObject() 

我的问题是,我希望能够修改文本使用一个自定义脚本适配器或使用形式的验证脚本重写后称为脚本“设置”。这些工作都不起作用(并且在个别领域中用于验证该领域的覆盖似乎也不允许这样做)。

是否有某些原因为什么setText()在某些地方工作而不在其他地方(线obj = context['settings']似乎不是问题)?我错过了什么?

至于我可以看到这是不是权限的问题,我有点困惑的是,如果代码的形式看,如果当表单已提交称为不工作的时候叫的作品。

我可以创建一个新的文本文件,并使用以这些方式调用的脚本向其添加文本没有问题:这似乎是在现有文件上调用setText()的特定问题。

+0

请更具体一点。你有错误信息吗?如果是这样,那是什么? – optilude 2012-07-09 11:36:22

+0

也搞清楚情况下[“设置”]上下文类可能有必要在这里做的进步 - 对什么对象调用的setText()? – 2012-07-09 15:32:22

+0

我没有收到错误消息。 – 2012-07-09 17:35:40

回答

1

的解决方案是在调用setText()时显式地设置的mimetype:

obj.setText("Some text", mimetype='text/plain') 

obj.setText("Some text", mimetype='text/html') 
适当

。我不知道这是为什么起作用,但确实如此。