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
答案 0 :(得分:1)
好像你的意思是:
output[LeaveType.objects.get(type_name=x).id][1]
因为您在其他地方设置的密钥是ID,而不是LeaveType实例。
一般来说,如果使用中间变量而不是在dict查找中进行调用,则代码会更清晰。