Django导出多个对象的csv

时间:2014-05-20 07:51:35

标签: django

我错在哪里?我想导出对象的细节

此行是< for x in x [0] [' user']:>但我不知道为什么?

Django版本:1.6.2 异常类型:KeyError 例外值:0

def export_excel(request):
    response = HttpResponse(mimetype='application/vnd.ms-excel; charset="Shift_JIS"')
    response['Content-Disposition'] = 'attachment; filename=file.csv'
    writer = csv.writer(response)
    titles = ["No","name","date","start_time","off_time"]
    writer.writerow(titles)
    obj_all = attendance.objects.filter(id = 1).values('user', 'contact_date', 'contact_time').order_by("-contact_time")
    lea = leavework.objects.filter(id = 1).values('contact_time').order_by('-contact_time')
    row = []
    for x in obj_all:
        for r in x[0]['user']:
            row.append(r)
        writer.writerow(row)

    return response

1 个答案:

答案 0 :(得分:0)

以下是我要做的事情:

for x in obj_all:
    try:
        for r in x[0]['user']:
            row.append(r)
        writer.writerow(row)
    except KeyError as e:
        import pdb; pdb.set_trace()

然后,我会在开发服务器中重新加载视图(你正在使用manage.py runserver吗?),这会给我一个PDB提示。

从那开始,我会看一下x,因为我认为问题(基于您KeyError引用的密钥0丢失)。您可以使用dir(x)查看变量以查看x具有哪些属性,只需p x打印出``x`。

如果您是PDB的新手,Steve Ferb's guide to PDB应该可以帮助您入门。