pyral访问来自CA Agile Central的customfield .attributes值

时间:2017-08-23 17:59:41

标签: python django pyral

我在发展方面一般都是超级新人。我目前正在构建一个从Rally / CA Agile Central获取数据的Web应用程序,并将它们放在一个整洁的表中。 我的代码:

response = rally.get('UserStory', fetch = True, query=query_criteria)
response_defect = rally.get('Defect', fetch = True, query=query_criteria)

story_list = []
if not response.errors:
    for story in response:
        #print (story.details())
        a_story={}
        #a_story['State'] = story.State.Name #if story.State else "Backlog"
        a_story['State']=story.BusOpsKanban if story.BusOpsKanban else "unassigned"
        #a_story['Status']=Story.Status if story.Status else "unassigned"
        a_story['id'] = story.FormattedID
        a_story['name'] = story.Name
        a_story['Opened']=(datetime.strptime(story.CreationDate, '%Y-%m-%dT%H:%M:%S.%fZ').strftime('%Y-%d-%b'))
        a_story['Requester']= story.Owner.Name if story.Owner else "unassigned"
        a_story['Blocked']= story.Blocked
        a_story['Service']=story.c_ServiceNowID

我的问题是访问我的customfield(c_ServiceNowID)的linkid的值。 当我运行 Dict =我看到我有LinkID属性但是当我输入

story.c_ServiceNowID.LinkID,我收到一条错误消息,告诉我没有这样的属性....如何使用python访问此值? 谢谢

2 个答案:

答案 0 :(得分:0)

根据http://pyral.readthedocs.io/en/latest/overview.html#custom-fields的文档,pyral允许您引用不带c_前缀的字段

  

Rally中的大多数工件类型都可以使用自定义字段进行扩充。从Rally WSAPI v2.0开始,自定义字段的ElementName以“c_”为前缀。 pyral工具包允许您引用这些字段,而无需使用'c_'前缀。例如,如果您的自定义字段的DisplayName为“Burnt Offerings Index”,则可以在fetch子句或查询子句中使用“BurntOfferingsIndex”字符串,或者直接在工件上引用该字段作为artifact.BurntOfferingsIndex。

答案 1 :(得分:0)

我认为你的工作应该有效,除非ServiceNowID为空。在这种情况下,ServiceNowID对象上不会有LinkID或DisplayString。

如果您更新代码以检查属性是否存在,那么它是否有效?

if hasattr(story.c_ServiceNowID, 'LinkID'):
  a_story['Service']=story.c_ServiceNowID.DisplayString
  a_story['Link']=story.c_ServiceNowID.LinkID