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”
标识的集合中。很抱歉,我今天会检查它。