2017-10-15 9 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> 

표는 모든 항목과 클릭 할 때, 나는 아래에 따라 GET 요청에 대한 AJAX를 사용하고 있습니다에 대한 삭제 버튼이 있습니다;

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

나는보기가 데이터베이스에서 삭제하는 것을 목적 확인할 수 있도록 볼 수 people.ID 변수를 보낼 AJAX를 사용하고 싶습니다. 그러나 문제는 AJAX에서 jinja 변수를 전달할 수없는 것입니다.

내 AJAX 성명에서 뭔가 빠졌습니까? 그렇지 않다면 이상적인 해결책은 무엇입니까?

참고 : 페이지를 새로 고침하고 싶지 않기 때문에 버튼에 'href'를 사용하고 싶지 않습니다.

답변

0

글쎄, 그렇게 작동하지 않습니다. 템플릿 태그는 렌더링시 평가되지만 클릭 한 요소의 ID가 필요합니다. data 요소를 사용하여 ID를 보유하고이를 JS에 다시 가져올 수 있습니다.

여기에도 몇 가지 다른 점도 있습니다. 특히 HTML 요소 ID는 고유해야하지만 루프의 모든 링크에 대해 동일한 요소 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', 
    }) 

(당신은 구체적으로는, 장고 신사를 사용하지 않습니다 구성하지 않은 경우, 주

, 이것은 거의 확실 동일 유사하지만하지 장고 템플릿 언어입니다 그것은 아무튼. 그래도 문제에 영향을주지 않습니다.)

+0

대니얼 감사합니다! 나는 이것을 위해 며칠 동안 해결책을 찾고자했습니다! –