Plone/Dexterity- 如何获取对象工作流状态的 "Title"?

Plone/Dexterity- How can I get the "Title" of an object's workflow state?

我正在尝试获取对象所处工作流状态的 "title"。 我确实尝试了几件事,并且一直在获取工作流状态的 "id"。

一次尝试让我得到 id

workflow = getToolByName(self.context,'portal_workflow')
status = workflow.getStatusOf("my_workflow", my_obj)
state = status["review_state"]
print state

另一种尝试也给了我一个 id

workflow = getToolByName(self.context,'portal_workflow')
status = workflow.getInfoFor(my_obj,'review_state')
#print type(status) returns "<type 'str'>"
print status

另一次尝试:

state = api.content.get_state(obj=my_obj)
print state

如何获得州的称号?一定有一些简单的东西我想念。

我假设您想获取对象的 translated 工作流状态。 状态通常在 plone i18n 域内翻译,所以 plone UI 正确显示你的状态。您可以使用 zope.i18n.translate 来获取翻译后的状态。

>>> workflow = getToolByName(my_obj,'portal_workflow')
>>> status = workflow.getInfoFor(my_obj,'review_state')

>>> from zope.i18n import translate
>>> translate(msgid=status, domain='plone', target_language='en')
>>> 'Published'

您可以从 language_tool 中获取语言。

检查 http://zopei18n.readthedocs.org/en/latest/api.html#zope.i18n.translate 了解更多信息。