setText()在Plone对象上失败

setText()在Plone对象上失败,plone,ploneformgen,Plone,Ploneformgen,我担心我可能忽略了一些非常明显的事情,但如果有任何建议,我将不胜感激。我在Plone的Ploneformgen表单文件夹中有一个名为“设置”的纯文本文件。当我将此文件放入Python脚本中时,下面的代码成功地更改了该文件中的文本,该脚本在使用表单某个字段中的重写(例如字符串字段中的默认表达式)查看表单时调用 我的问题是,我希望能够使用自定义脚本适配器或使用表单的验证后脚本覆盖调用的脚本来修改“设置”中的文本。这两项工作都不起作用(用于验证字段的各个字段中的重写似乎也不允许这样做) setText

我担心我可能忽略了一些非常明显的事情,但如果有任何建议,我将不胜感激。我在Plone的Ploneformgen表单文件夹中有一个名为“设置”的纯文本文件。当我将此文件放入Python脚本中时,下面的代码成功地更改了该文件中的文本,该脚本在使用表单某个字段中的重写(例如字符串字段中的默认表达式)查看表单时调用

我的问题是,我希望能够使用自定义脚本适配器或使用表单的验证后脚本覆盖调用的脚本来修改“设置”中的文本。这两项工作都不起作用(用于验证字段的各个字段中的重写似乎也不允许这样做)

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

据我所知,这不是权限问题,我有点困惑,如果在查看表单时调用可以工作的代码,那么在提交表单时调用就不能工作


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

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


视情况而定。我不知道为什么这样做有效,但确实有效。

请更具体一点。你收到错误信息了吗?如果是这样的话,那是什么呢?还需要弄清楚上下文[“设置”]上下文类才能在这里取得进展-对于您称之为setText()的对象?我没有收到错误消息。该对象的类型为“Document”(格式为“text/plain”),其中的文本最初是使用setText()创建的。
obj = context['settings']
obj.setText('Some text:2;More text:2')
obj.reindexObject()
obj.setText("Some text", mimetype='text/plain')
obj.setText("Some text", mimetype='text/html')