在使用 django-filter 进行过滤时如何将过滤后的值导出到 csv 文件中

while using django-filter for filtering how to export the filtered values into csv file

我使用了 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