Bonjour à tous. J’essaie depuis quelques jours de faire fonctionner le plugin select2 avec Django. La documentation en ligne pour utiliser select2 avec django est bien pauvre, contrairement à Php. Bref, m’inspirant de ce que j’ai glané sur le net, j’ai inséré dans mon fichier html, les lignes suivantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> <script type="text/javascript"> $('.itemName').select2({ placeholder: 'Select an item', ajax: { url: '/index/get_combo-obj/', dataType: 'json', delay: 250, processResults: function (data) { return { results: data }; }, cache: true } }); </script> {% block content %} <div class="container"> <div style="width:520px;margin:0px auto;margin-top:30px;height:500px;"> <h2>Choix à partir de la liste</h2> <select class="itemName" style="width:100%"> <option value="3620194" selected="selected">Choisir dans la liste......</option> </select> </div> </div> {% endblock %} |
Le lien est défini dans le fichier urls comme ci -dessous:
1 | url(r'^get_combo-obj/$', views.Combo_obj, name='aff_combo_oev'), |
Et voici la fonction qui est appelée:
1 2 3 4 5 6 7 | def Combo_obj(request): if request.method == 'POST': ListeChoixobj10 = [("id: " + str(o.CuOev), "text: " + str(o.Nom) + ' ' + str(o.Prenom)) for o in obj.objects.all()] Data=dict(ListeChoixobj10) return JsonResponse(Data) |
Après plusieurs tests, je constate que la requette Ajax n’est pas émise et la fonction n’est jamais appelée, raison pour laquelle les données ne sont pas renvoyées.
Comment résoudre ce problème ? D’avance merci.
+0
-0