У меня есть кнопка в моем шаблоне, которая при нажатии преобразует конкретную модель в 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')