Merci c'est plus simple à expliquer, c'est fonctionnel avec ajax après tests.
Pour commencer l'objectif : Lors de la sélection d'un artiste dans le formulaire de devis, j'ai automatiquement récupéré et intégré dans le champ du formulaire la valeur du nombre d'artiste Nb artiste.
Pour cela voici mes modifications,
Ajouter dans devis_create.html le code ajax,
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelector("#id_artiste").addEventListener("change", function() {
var artisteId = this.value;
fetch(`/get-nb-artistes/${artisteId}/`)
.then(response => response.json())
.then(data => {
document.querySelector("#id_nb_artiste").value = data.nb_artistes;
});
});
});
</script> |
Ajouter dans views.py,
1 2 3 4 5 6 7
| from django.http import JsonResponse
from .models import Prestation
def get_nb_artistes(request, artiste_id):
nb_artistes = Prestation.objects.get(id=artiste_id).nb_artiste
return JsonResponse({'nb_artistes': nb_artistes}) |
Ajouter dans urls.py
path('get-nb-artistes/<int:artiste_id>/', views.get_nb_artistes, name='get-nb-artistes'),
Lors de la sélection d'un artiste j'ai le nombre d'artistes automatiquement inséré dans le formulaire du devis (vérifié dans la base de données, c'est correct).
Plus qu'à comprendre et refaire la même chose pour chacun des champs, ou mieux récupérer en une seule fonction l'ensemble de tes champs
Partager