django管理员操作导出到csv单独响应

时间:2015-05-11 20:16:37

标签: python django csv django-admin httpresponse

  

这些表格:

     

a)HEADER

     

b)ROWS

由管理员管理,从a)模型我添加了一个获取b)中引用的行的动作,当应用于a)中的一个对象时,它可以正常工作。 但是在a)中选择多个对象会在单个csv文件中出现。 如何将多个响应拆分为多个csv,每个对象一个文件内部引用所有行?

import csv
from django.utils.encoding import smart_str

def export_su_csv(modeladmin, request, queryset):

for u in queryset:   # process each selected row to separate responses
    response = HttpResponse(content_type='text/csv')
    a=Rows.objects.filter(ref=u)    

    response['Content-Disposition'] = u'attachment; filename={}'.format(u)   
    writer = csv.writer(response)        
    for o in a:             # for single row in rows
        writer.writerow([
            smart_str(o.field1),
            smart_str(o.field2),
            smart_str(o.field3),
        ])

return response

是否可以返回多个回复?如果有,怎么样? 我试图写一个响应列表并返回,但结果是空的。

0 个答案:

没有答案