/ / Django ajoute des champs à former dynamiquement en fonction du nombre de valeurs du champ de choix du modèle - ajax, django, django-forms, formsets

Django ajoute des champs à former dynamiquement en fonction du nombre de valeurs du champ de choix du modèle - ajax, django, django-forms, formsets

Objectif: A partir d'un formulaire Django, champ de choix de modèle, le widget affiche plusieurs cases à cocher. Mais pour chaque case à cocher, j'aimerais afficher exactement une zone de texte, puis l'envoyer. Je veux savoir si la case à cocher n’est pas cochée, c’est toujours son identifiant et la valeur possible de la zone de texte. Comment puis-je y parvenir, s’il s’agit d’Ajax. Veuillez préciser. Comme je suis assez nouveau sur Django et que je n’ai pas beaucoup travaillé ajax.

Réponses:

0 pour la réponse № 1

Donc, vous devez ici des approches possibles,

  1. Plus simple (mais une approche très tardive): Soumettez le formulaire après la case à cocher de l’utilisateur, traitez-le en views.py et en conséquence servir l'autre partie de la formesur un autre modèle. Cela vous mènera à recharger la page et à changer les URL pour le même formulaire. Cette approche convient si vous ne le faites que pour apprendre Django au début.
  2. La meilleure approche. Vous pouvez utiliser à la page JavaScript / JQuery pour déterminer si la case à cocher est cochée ou non et afficher en conséquence la case à cocher. Vous pouvez faire quelque chose comme

    if(document.getElementById("yourCheckBoxID").checked)
    {
    $("#FormFieldID").show();
    }
    else
    {
    $("#FormFieldID").hide();
    }
    

Si vous procédez de la sorte, rappelez-vous de NE PAS définir le champ de saisie sur "obligatoire", car cela pourrait générer des erreurs lorsque le champ de texte n'est pas affiché. Utilisez une sorte de validation de formulaire JS si vous devez le faire.

J'espère que cela t'aides!