2012-07-09 45 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') 
適當

。我不知道這是爲什麼起作用,但確實如此。