Как определить, когда возвращается HttpResponse (content_type = 'text / csv'), запускается в шаблоне Django? - PullRequest
0 голосов
/ 28 марта 2020

У меня есть кнопка в моем шаблоне, которая при нажатии преобразует конкретную модель в CSV-файл и начинается загрузка.

<a href="{% url 'down' %}" >Download csv File</a>

Вид:

def down(request):
    allobj=resource.objects.all()
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="resources.csv"'

    writer = csv.writer(response)
    writer.writerow(['Name','Email','Resource'])
    for obj in allobj:
        writer.writerow([obj.name,obj.email,obj.resource])

    return response

Проблема : я хочу показать загрузочный GIF, так как модель довольно большая. Я могу запустить анимацию при нажатии на ссылку, но мне нужно знать, когда ее остановить. Так есть ли способ определить в шаблоне, когда ответ возвращается или когда начинается загрузка?

Я знаю, что легко определить, когда представление успешно функционировало, используя Ajax, но как мне реализовать загружаемая ссылка с использованием ajax, поскольку обычно она имеет ответ Json, но здесь у меня есть ответ = HttpResponse (content_type = 'text / csv')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...