Django:在 HttpResponse 之后重定向

cal*_*iph 5 django redirect refresh httpresponse

我正在视图中生成报告下载并在处理 POST 数据后开始下载。这意味着用户发送表单并开始下载:

视图.py

def export(request):
    if request.method == 'POST' and 'export_treat' in request.POST: 
        form1 = TransExport(request.POST, instance= obj)
        if form1.is_valid():
            ... 
            ...
            response=HttpResponse(ds.xls,content_type="application/xls")
            response['Content-Disposition'] = 'attachment; filename="Report_Behandlungen.xls"'
            return response
Run Code Online (Sandbox Code Playgroud)

我需要的是下载(或重定向)后的页面刷新。我怎样才能做到这一点?

don*_*yor 3

我会用 javascript 以简单的逻辑来完成它:

用户点击链接

/download_file_now/
Run Code Online (Sandbox Code Playgroud)

到了/file_downloaded/下载开始的地方,3秒后,你只需通过js重定向页面

location.replace('/another_url/');
Run Code Online (Sandbox Code Playgroud)

检测下载是否准备好并不容易