低於專賣店這個變量在變量名PROC的處理:使用Django模板中Javascript中的Django視圖生成的變量?
proc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination],
stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
我在Django模板的形式。每當用戶按下按鈕提交我想使用變量proc並顯示處理。我嘗試使用Django模板JavaScript中的變量proc,如下所示:
function popUp() {
var a = "{{proc}}"
document.write(a)
}
</script>
但它只顯示空白頁面。我已經測試了變量直接調用html身體標記,它工作正常,但不適用於JavaScript。我做錯了什麼?
我打電話的彈出功能像這樣的Django模板是這樣的:
<form name="form1" action="/sync/" method="post" onsubmit="popUp()">
而且,我傳遞變量PROC在Django模板是這樣的:
return render_to_response('synced.html', {'final_result':final_list}, context_instance=RequestContext(request))
return render_to_response('thanks.html', {'proc':proc}, context_instance=RequestContext(request))
編輯: 爲了檢查,而不是將該變量傳遞到thanks.html我通過了可變PROC到synced.html並在模板中使用這樣的:
<th>Files in the server:</th>
</tr>
<td>{{ proc }}</td>
<tr>
和我的輸出是:
receiving incremental file list 0 0% 0.00kB/s 0:00:00 (xfr#0, to-chk=0/1) sent 20 bytes received 56 bytes 6.08 bytes/sec total size is 8,640 speedup is 113.68
你叫的'popUp'功能? – Ian
我正在調用彈出式功能。 – user1881957
嗯,我不確定爲什麼它是一個_blank_頁面,但在頁面渲染後使用'document.write'並不好 - 它會用你指定的任何東西覆蓋頁面......在你的情況'a'中。這意味着'a'由於某種原因是空的。此外,由於您正在提交表單,因爲將請求發送到瀏覽器進行「/ sync /」,並且響應可能因爲某種原因沒有任何內容而填充頁面,因此該頁面將被清除 – Ian