我使用 django-filter 模块进行过滤。想要将结果导出到 CSV 文件中。
def bfs_version_filter(request):
version_obj = bfs_versions.objects.all()
filter_obj = version_filter(request.GET, queryset = version_obj)
response = HttpResponse(content_type = 'text/csv')
file_name = "version_filter"+str(date.today())+".csv"
response['Content-Disposition'] = 'attachment; filename = "'+ file_name +'"' #edited by vennilam
writer = csv.writer(response)
for i in filter_obj:
writer.writerow(i)
return response
出现以下错误: /bfslite/version_filter/类型错误 'version_filter' 对象不可迭代
请您参考如下方法:
调用 FilterSet 子类的构造函数不会过滤查询集,它会构造该子类的对象。
您可以访问 .qs attribute [readthedocs.io]访问过滤后的查询集:
def bfs_version_filter(request):
version_obj = bfs_versions.objects.all()
filter_obj = version_filter(request.GET, queryset = version_obj)<b>.qs</b>
response = HttpResponse(content_type = 'text/csv')
file_name = "version_filter"+str(date.today())+".csv"
response['Content-Disposition'] = 'attachment; filename = "'+ file_name +'"' #edited by vennilam
writer = csv.writer(response)
for i in filter_obj:
writer.writerow(i)
return response
