Plone / Dexterity-如何获得对象工作流状态的“标题”?

时间:2015-08-03 15:04:49

标签: plone dexterity

我正在尝试获取对象所在的工作流状态的“标题”。 我确实尝试了几件事,并继续获得工作流状态的“id”。

一次尝试让我获得了身份

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

另一次尝试也给了我一个身份

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

我如何获得州的头衔?我必须有一些简单的东西。

1 个答案:

答案 0 :(得分:5)

我假设你想获得一个对象的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以获取更多信息。