gpt4 book ai didi

python - 使用 Django 生成 CSV 文件(动态内容)

转载 作者:太空狗 更新时间:2023-10-29 21:32:50 24 4
gpt4 key购买 nike

在我的 view.py 中,我有两个函数,一个处理来自表单的输入并输出过滤后的列表,另一个应该将此列表导出为 CSV。

这是我的第一个函数的返回值:

return render_to_response('templateX.html',
{
'queryset': queryset,
'filter_form': filter_form,
'validated': validated,
},
context_instance = RequestContext(request)
)

导出函数如下:

def export_to_csv(request):
# get the response object, this can be used as a stream.
response = HttpResponse(mimetype='text/csv')
# force download.
response['Content-Disposition'] = 'attachment;filename=export.csv'
# the csv writer
writer = csv.writer(response)
qs = request.session['queryset']
for cdr in qs:
writer.writerow([cdr['calldate'], cdr['src'], cdr['dst'], ])
return response

我不确定如何从我的第一个函数中获取queryset,它包含我想要在 CSV 中的项目列表并在我的 export_to_csv 函数中使用它。或者最好的方法是将这两个功能结合起来,让用户点击复选框是否要下载 CSV 文件。任何帮助将不胜感激。

最佳答案

我建议将这些组合成一个带有额外参数的 View 函数:

def my_view(request, exportCSV):
# ... Figure out `queryset` here ...

if exportCSV:
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment;filename=export.csv'
writer = csv.writer(response)
for cdr in queryset:
writer.writerow([cdr['calldate'], cdr['src'], cdr['dst'], ])
return response
else:
return render_to_response('templateX.html', {'queryset': queryset,
'filter_form': filter_form, 'validated': validated},
context_instance = RequestContext(request))

然后,在您的 urls.py 中,将如下内容放入您的 urlpatterns:

url(r'^form', 'my_view', {"exportCSV": False}, name="form"),
url(r'^csv', 'my_view', {"exportCSV": True}, name="export"),

关于python - 使用 Django 生成 CSV 文件(动态内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4072574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com