【问题标题】:Export CSV files in a bulk in Django在 Django 中批量导出 CSV 文件
【发布时间】: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


    【解决方案1】:

    您无法通过 1 个 HTTP 请求 details 下载多个文件。

    因此,您可以将 csv 压缩到一个 zip 文件中,然后像 this answer describes 一样返回它。

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 2018-04-09
      • 2020-10-18
      • 2022-01-04
      • 2017-07-18
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      相关资源
      最近更新 更多