在为列表索引赋值时获取错误

时间:2013-05-07 11:14:03

标签: django

empname = Leave.objects.filter(created_by=self.request.user)[0].emp_id_requested_for
                       typelist = TypeAssign.objects.filter(emp_id__emp_name=empname)
output = {}

data = Leave.objects.filter(created_by=self.request.user)

for x in data:
    output[x.leave_type_id] = [0,0]

for t in data:
    output[t.leave_type_id][0] = (t.total_approve_leave + output[t.leave_type_id][0])

for x in typelist:
    **output[LeaveType.objects.get(type_name=x)][1] = LeaveType.objects.get(type_name=x).max_duration**

ctx["output"] = output

return ctx

1 个答案:

答案 0 :(得分:1)

好像你的意思是:

output[LeaveType.objects.get(type_name=x).id][1]

因为您在其他地方设置的密钥是ID,而不是LeaveType实例。

一般来说,如果使用中间变量而不是在dict查找中进行调用,则代码会更清晰。