2017-10-15 46 views
0

我有一個HTML視圖,它顯示了一個帶有與會者的表的列表;如何發送Jinja變量到Django查看

 <table> 
      {% for people in Attendees %} 
      <tr> 
       <td>{{ people.id }}</td> 
       <td>{{ people.name }}</td> 
       <td> 
        <a id='deleteAttendeeButton' class="btn btn-primary btn-xs">Delete</a> 
       </td> 
      </tr> 
      {% endfor %} 
     </table> 

表對所有條目,並點擊時,我使用AJAX的GET請求按照下方的刪除按鈕;

$("#deleteAttendeeButton").on("click", function() { 
     $.ajax({ 
      url: '/modifyAttendee/?id={{ people.id }}', 
      type: 'GET', 
     }) 
}); 

我想用AJAX發送people.ID變量來查看,以便視圖可以確定在數據庫中刪除哪個對象。然而,問題是我似乎無法傳入AJAX中的jinja變量。

我失去了我的AJAX聲明的東西嗎?如果不是,那麼什麼是理想的解決方案?

注:我不想用「href」屬性的按鈕,因爲我不想重新加載頁面。

回答

0

那麼,它不會那樣工作。模板標籤在渲染時被評估,但你需要被點擊的元素的ID。您可以使用data元素來保存該ID並將其恢復到JS中。

還有一些其他的事情錯在這裏太;特別是,HTML元素ID必須是唯一的,但是您對循環中的每個鏈接使用相同的一個。您應該改用類。

<a class='deleteAttendeeButton btn btn-primary btn-xs' data-people_id="{{ people.id }}">Delete</a> 

...

$(".deleteAttendeeButton").on("click", function() { 
    var people_id = $(this).data('people_id'); 
    $.ajax({ 
     url: '/modifyAttendee/?id=' + people_id, 
     type: 'GET', 
    }) 

(請注意,除非你有專門配置它,Django不使用神社,這是幾乎可以肯定的Django模板語言是相似但不相同的一點也沒有。儘管如此,這並不會影響你的問題。)

+0

非常感謝你Daniel!我試圖爲這個日子找到一個解決方案! –