4

我担心我可能会忽略一些非常明显的东西,但我会很感激任何建议。我在 Plone 的 Ploneformgen 表单文件夹中有一个名为“设置”的纯文本文件。下面的代码成功地改变了这个文件中的文本,当我把它放在一个 Python 脚本中时,当使用表单字段之一中的覆盖(例如,字符串字段中的默认表达式)查看表单时调用。

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

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

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

据我所知,这不是权限问题,而且我有点困惑的是,如果在查看表单时调用的代码如果在提交表单时调用则不起作用。

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

4

1 回答 1

1

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

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

或者

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

作为适当的。我不知道为什么会这样,但确实如此。

于 2012-07-10T05:50:46.150 回答