我只是想让Django导出一个Model对象的csv。我已经尝试了很多不同的东西,并将我的代码减少到以下示例仍然不起作用。
我已经消除了构建文件的所有逻辑,关闭了所有上下文处理器(认为它们可能会以某种方式干扰),并调整我的模型以确保所有字段都是unicode(这在代码示例中甚至不重要) )。
我为常规csv更改了unicodecsv并且仍然有相同的问题所以我假设问题是在Django内部而不是视图。
预期输出是带有标题行的csv文件。实际输出是一个完全空的文件。
views.py:
def export_list_to_csv(request):
response = HttpResponse(content_type='text/csv',)
response['Content-Type'] = 'application/x-download';
response['Content-Disposition'] = 'attachment; filename="my_product_list.csv"'
writer = unicodecsv.writer(response)
headers = ["name", "description", "website", "price", "creation_date"]
writer.writerow(headers)
return response
答案 0 :(得分:0)
错误是Werkzeug使用的“runserver_plus”,无论出于何种原因,都不支持构建这样的响应。这个函数适用于常规的“runserver”或gunicorn。