[英]how to pass jquery variable to django view
簡介:我正在創建一個顯示用戶選擇結果的網頁。 我有兩個文件。 html和jquery。 我創建了一個變量reportsarray = [],當單擊“完成”按鈕時,該變量將收集用戶的所有選擇。
問題:我必須將report_array []值傳遞給django視圖。
這是jquery的代碼
.on('click','.done', function(){
var report_array = [];
report_array.push(
{
Layer_Table: layer_array,
Benefits_Table: benefits_array,
Map_Layer_selection: save_selection_layer,
Map_Benefits_selection: save_selection_benefits,
});
console.log(report_array);
這是view.py的代碼
def done(request):
template = loader.get_template('maps/done.html')
context = RequestContext(request, {
'reports_link': report_array, //I believe this is not correct.
})
return HttpResponse(template.render(context))
如何將jquery的report_array傳遞給此“上下文” ... ???? 假設done.html包含以下代碼
<head>
<title>Reports</title>
</head>
<body>
<p>{{ reports_link }}</p>
</body>
我是django界面的新手。 假設url.py是正確的。 我正在尋找我在這里缺少的邏輯。
提前致謝
我不確定我是否理解您要如何呈現報告數組。 但是要將JQuery數組傳遞給Django視圖,您可以使用AJAX調用Django URL
var obj = {'report_array': report_array}
$.ajax({
type: 'POST',
url: '/DESTINATION_URL/',
contentType: 'application/json; charset=utf-8', //EDITED
data: JSON.stringify(obj),
success: function(data) {
$('body').html(data); //EDITED
},
error: function(rs, e) {
alert(rs.responseText);
}
});
然后在您的views.py
import json
from django.template.loader import render_to_string
def done(request):
params = json.loads(request.body)
report_array = params['report_array']
html_data = render_to_string('maps/done.html', {'reports_link': report_array})
return HttpResponse(html_data)
然后,您的done.html可能就是這樣:
<body>
<p>{{ reports_link }}</p>
</body>
這樣,AJAX將呈現您的頁面以在成功時顯示report_array。 因此,它將更改正文的內容,而無需重新加載頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.