2017-10-15 8 views
0

J'ai une vue en HTML où il affiche une liste de table avec les participants;Comment envoyer des variables Jinja à Django Voir

 <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> 

La table a un bouton de suppression pour toutes les entrées et lorsque vous cliquez dessus, je suis en utilisant AJAX pour une requête GET comme ci-dessous;

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

Je veux utiliser AJAX pour envoyer la variable people.ID pour voir de telle sorte que la vue peut déterminer quel objet à supprimer dans la base de données. Cependant, le problème est que je n'arrive pas à transmettre une variable jinja dans AJAX. Est-ce que je manque quelque chose dans ma déclaration AJAX? Sinon, quelle serait la solution idéale?

Remarque: Je ne souhaite pas utiliser 'href' dans le bouton car je ne souhaite pas recharger la page.

Répondre

0

Eh bien, ça ne marche pas comme ça. Les balises de gabarit sont évaluées au moment du rendu, mais vous avez besoin de l'ID de l'élément sur lequel vous avez cliqué. Vous pouvez utiliser l'élément data pour conserver l'ID et le récupérer dans le JS.

Il y a aussi quelques autres erreurs ici; en particulier, les identifiants d'éléments HTML doivent être uniques, mais vous utilisez le même pour chaque lien de la boucle. Vous devriez utiliser une classe à la place.

<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', 
    }) 

(Remarque, sauf si vous avez configuré spécifiquement il, Django n'utilise pas Jinja, ce qui est presque certainement langage de template Django qui est similaire, mais pas la même Il doesn. N'affectez pas votre problème, cependant.)

+0

Merci beaucoup Daniel! J'essayais de trouver une solution pour cela pendant des jours! –