2015-08-27 102 views
3

這是我的代碼。我正在嘗試將xml字符串轉換爲python列表以顯示在html模板中。「字典」對象沒有屬性「ID」

self.task_xml = "<?xml version="1.0" encoding="utf-8"?> 
    <django-objects version="1.0"> 
<object model="task.task" pk="31"> 
<field name="name" type="CharField">New Task</field> 
<field name="parent_task_id" type="IntegerField">0</field> 
</object> 
<object model="task.task" pk="32"> 
<field name="name" type="CharField">New Task</field> 
<field name="parent_task_id" type="IntegerField">0</field> 
</object> 
<object model="task.task" pk="33"> 
<field name="name" type="CharField">New Task</field> 
<field name="parent_task_id" type="IntegerField">31</field> 
</object> 
<object model="task.task" pk="34"> 
<field name="name" type="CharField">New Task</field> 
<field name="parent_task_id" type="IntegerField">31</field> 
</object> 
</django-objects>" 

58   self.xmlData = ET.fromstring(self.db.task_xml) 
59 
60   self.task_list = [] 
61   taskList = []               
62   for obj in self.xmlData.iter("object"): 
63    parent_task_id = obj.find("field[@name='parent_task_id']").text 
64    if parent_task_id == EMPTY_UUID: 
65     taskList.append({'id': obj.get("pk"), 
66      'name': obj.find("field[@name='name']").text, 
67      'parent_task_id': parent_task_id , 
68      }) 
69   # Apprend taskList: 
70   for task in taskList: 
71    taskViewModel = TaskViewModel(task.id, True) 
72    self.task_list.append(taskViewModel) 

,但我得到的錯誤:

'dict' object has no attribute 'id' 

,並在管線task.id 71

你覺得我在第65行有一個問題,這樣的:

'id': obj.get("pk" 
+1

而不是使用'task.id'你應該使用'任務[「身份證」]' – alfasin

回答

10

您正在錯誤地訪問字典。您需要使用標有串'id',示例 -

taskViewModel = TaskViewModel(task['id'], True) 
+0

噢,我的上帝!非常感謝你....哇!Anand S Kumar,非常感謝你一直在幫助我 –

+0

很高興我能幫上忙:)。 –

+0

我已經工作了! –

相關問題