我正在尝试获取对象所在的工作流状态的“标题”。 我确实尝试了几件事,并继续获得工作流状态的“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
我如何获得州的头衔?我必须有一些简单的东西。
答案 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以获取更多信息。