2013-07-19 80 views
2

我在表單提交後生成pdf,我想重定向到「pdf已生成」或者用表單重新加載頁面。我不知道該怎麼做,我想這可以用javascript/jquery完成,但我沒有找到辦法做到這一點。在pdf生成後重定向

這是生成PDF的觀點:

def myview(response): 
    resp = HttpResponse(content_type='application/pdf') 
    result = generate_pdf('my_template.html', file_object=resp) 
    return result 
+0

我嘗試沒有成功的給出解決方案。這些視圖被重定向而不生成pdf。 – Rod0n

+0

您是否嘗試過我的解決方案? – Carlangueitor

+0

是的,但我無法解決問題。 – Rod0n

回答

2

首先創建一個成功的看法:

def pdf_success(request): 
    return render_to_response('pdf_success.html', {}, 
           context_instance=RequestContext(request)) 

然後做重定向成功後:

def myview(response): 
    resp = HttpResponse(content_type='application/pdf') 
    result = generate_pdf('my_template.html', file_object=resp) 
    if result: 
     return HttpResponseRedirect('/url/to/success/view') 

只給你的想法

2

從這個snippet您可以創建一個定製的裝飾

​​3210

您可以使用任何這些從下一個方法:

@redirect('http://stackoverflow.com') 
def myview(response): 
    resp = HttpResponse(content_type='application/pdf') 
    result = generate_pdf('my_template.html', file_object=resp) 
    return result 

或:

@permanent_redirect('http://stackoverflow.com') 
    def myview(response): 
     resp = HttpResponse(content_type='application/pdf') 
     result = generate_pdf('my_template.html', file_object=resp) 
     return result 
3

不能從重定向在創建PDF文件時使用相同的視圖,一種選擇是首先發送成功頁面,然後開始下載。

你成功的看法:

def pdf_success(request): 
    # View stuff 
    return render_to_response('pdf.html', {}, context_instance=ctx) 

而你需要添加到您的pdf.html模板:

<meta http-equiv="REFRESH" content="0;url={% url "myview" %}">