【发布时间】:2022-01-11 11:08:54
【问题描述】:
我正在创建一个自定义管理操作,以将订单列表下载为 CSV 文件。 我的订单/admin.py 中有这个:
def export_to_csv(modeladmin, request, queryset):
opts = modeladmin.model._meta # opts = options
for order in queryset:
content_disposition = f'attachment; filename=OrderID-{order.id}.csv'
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = content_disposition
writer = csv.writer(response)
fields = [field for field in opts.get_fields() if not field.many_to_many
and not field.one_to_many]
writer.writerow([field.verbose_name for field in fields])
# Write data rows
for obj in queryset:
data_row = []
for field in fields:
value = getattr(obj, field.name)
if isinstance(value, datetime.datetime):
value = value.strftime('%d/%m/%Y')
data_row.append(value)
writer.writerow(data_row)
return response
但是,即使我选择了多个,此代码也不会下载多个 csv 文件。
【问题讨论】:
标签: python django csv export-csv