我想通过响应在django服务下载文件后重定向到成功页面。 我该怎么办?
每次用户请求时都会由django生成文件,因此目录中没有真实文件。
“content”变量只是.ical格式的字符串。
def index(request):
if request.method == 'POST':
form = UploadText(request.POST)
if form.is_valid():
data = convert2calendar(form.cleaned_data['regHtml'])
open_day = form.cleaned_data['open_date_semester']
end_day = form.cleaned_data['end_date_semester']
content = create_ical_download(open_day, end_day, data)
response = HttpResponse(content_type='text/ics')
response['Content-Disposition'] = 'attachment; filename="export.ics"'
response.write(content)
return response
else:
form = UploadText()
return render(request, 'genclass/index.html', {'form': form})
感谢您的帮助。
答案 0 :(得分:1)
你应该通过在客户端重定向来实现它!
JS代码
document.getElementById('link-with-redirect').addEventListener('click', function() {
setTimeout(function() {
// Should be triggered after download started
document.location.href='{% url "redirect_destination" %}';
});
}, false);
HTML代码
<a href="{% url 'file_to_download' %}" id="link-with-redirect">Click here to download Django 1.9</a>