首页 > 解决方案 > 如何检测 HttpResponse(content_type='text/csv') 何时在 Django 模板中开始?

问题描述

我的模板中有一个按钮,单击该按钮可将特定模型转换为 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')

标签: djangoajax

解决方案


推荐阅读