我正在使用invokeFactory
從PloneFormGen表單自定義腳本適配器創建內容項目。目前爲止一切正常,但是我們想要開始生成註釋,以包含在創建操作中,以獲取該項目的歷史記錄。評論本身將使用表單中的字段和一些預設文本生成。從InvokeFactory創建內容時包含「更改註釋」
這是PFG能做的嗎?
內容類型是一種自定義類型,它是可版本化的。使用的Plone 4.3.2,PFG 1.7.14
編輯
我當前的代碼:
from Products.CMFPlone.utils import normalizeString
portal_root = context.portal_url.getPortalObject()
target = portal_root['first-folder']['my-folder']
form = request.form
title = "My Title: "+form['title-1']
id = normalizeString(title)
id = id+"_"+str(DateTime().millis())
target.invokeFactory(
"MyCustomType",
id=id,
title=title,
text=form['comments'],
relatedItems=form['uid']
)
我一直在使用像comments
鍵試過,comment
,message
,甚至cmfeditions_version_comment
在target.invokeFactory
參數內。到目前爲止沒有運氣。
我試圖在CSA你的建議。我收到了這個錯誤:'未經授權:您不允許在此上下文中訪問'setStatusOf'。 內容類型在其內容類型的python文件中有一個'at_post_create_script'和'at_post_edit_script'函數。我想知道我是否可以在那裏使用武力?我注意到,從'invokeFactory'創建項目時,這些函數不會被調用,但也許我可以得到它? – rain2o 2014-10-02 13:17:58
我能夠通過'workflow_tool.doActionFor()'工作。我只需要創建一個新的工作流程轉換,其中包含我想要的操作名稱。 – rain2o 2014-10-02 13:44:08
您必須使用正確的權限運行腳本。 afaik可以使用代理角色(例如Manager)來運行腳本。所以你可以避免權限問題(新的工作流也可能是一個解決方案)。您也可以將其添加到'at_post_create_script'腳本中。但也有你需要確保擁有正確的權限。 – Mathias 2014-10-03 06:35:23