Plone 如何向州政府询问内容对象?
在后面列出了几个对象属性。但我需要访问国家(出版、私人等)。我还使用Plone 如何向州政府询问内容对象?,plone,Plone,在后面列出了几个对象属性。但我需要访问国家(出版、私人等)。我还使用dir()搜索该属性,但没有看到名为state或类似名称的属性。i、 我需要这样的东西: >app.Plone.foo.bar.state “出版” 您始终可以使用来确定当前状态: workflowTool = getToolByName(self.portal, "portal_workflow") status = workflowTool.getStatusOf("plone_workflow", object) # wh
dir()
搜索该属性,但没有看到名为state
或类似名称的属性。i、 我需要这样的东西:
>app.Plone.foo.bar.state
“出版”
您始终可以使用来确定当前状态:
workflowTool = getToolByName(self.portal, "portal_workflow")
status = workflowTool.getStatusOf("plone_workflow", object)
# where "object" is your content object
print (status)
或者,为了使代码更具可读性,并且不必记住奇怪的方法名,可以使用:
from plone import api
api.content.get_state(obj=your_object)
当然,您需要首先将plone.api
添加到鸡蛋中,然后重新运行buildout。不幸的是,没有“state”属性。相反,请使用工作流工具检查review_state
,例如:
>>> app.Plone.portal_workflow.getInfoFor(app.Plone.foo.bar, "review_state")
在使用
bin/instance debug
时,我在询问app.Plone.news的状态时得到了status==None
。可以吗?@DanielHernández:确保您有正确的工作流id。您的评论暗示存在多个工作流状态集?我想我得到了None
,因为对象状态不在“plone\u workflow”
标识的集合中。很抱歉,我今天会检查它。