Как экспортировать CSV-файл после поиска данных в Django 2? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть функция поиска, которая возвращает json через ajax, но я также хочу экспортировать данные в файл csv.

Мне пришло в голову сделать другую функцию для экспорта данных, которая приводит поискфункция

Я делаю это так:

  def search(request):
    date = request.GET.get('date')

    queryset = List.objects.filter(date=date)
    data = serializers.serialize('json', queryset)

    return HttpResponse(data, content_type='application/json')

  def export_to_csv(request):
    data = search(request)
    # But that does not bring the search data
    print(data)
    # <HttpResponse status_code=200, "application/json">

Надеюсь, вы понимаете мой вопрос, некоторые идеи или предложения?

1 Ответ

0 голосов
/ 14 февраля 2019

Может быть, вы можете попробовать просто извлечь логику, которая извлекает и сериализует данные в вспомогательную функцию, которая может быть частью вашего views.py (или, возможно, более подходящего подхода, перенесена в вспомогательный / служебный модуль), например:

def get_search_data(date=None):
    queryset = List.objects.all()        
    if date:
        queryset = queryset.filter(date=date)

    return serializers.serialize('json', queryset)

def search(request):
    data = get_search_data(request.GET.get('date'))
    return HttpResponse(data, content_type='application/json')

def export_to_csv(request):
    data = get_search_data()
    ...
    print(data)
    # <HttpResponse status_code=200, "application/json">
...