簡體   English   中英

如何將jQuery變量傳遞給Django視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM