при использовании django-фильтра для фильтрации того, как экспортировать отфильтрованные значения в CSV-файл - PullRequest
2 голосов
/ 19 сентября 2019

Я использовал модуль 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

Ошибка при получении ниже: ошибка TypeError в / bfslite / version_filter / 'version_filter' не повторяется

1 Ответ

0 голосов
/ 19 сентября 2019

Вызов конструктора подкласса FilterSet не отфильтрует набор запросов, он создаст объект этого подкласса.

Вы можете получить доступ к атрибуту .qs[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
...