Implémenter un bouton d'ajout de formulaire dans l'ensemble de formulaires en ligne Django
introduction
L'ensemble de formulaires en ligne de Django est idéal pour créer des relations parent-enfant, telles que la partie en-tête d'une commande d'achat (date, nom du client, etc.) et les détails de la commande (commande, quantité, etc.) qui lui sont associées. est.
(Exemple manuscrit)
Cependant, c'est un peu déroutant car vous aurez affaire à plusieurs formulaires à la fois avant de vous y habituer.
De plus, dans l'exemple du bon de commande, la ligne aura autant de formes que le numéro défini au début pour une nouvelle entrée. Cependant, si vous manquez de tous les formulaires et que vous voulez une nouvelle ligne, vous devez implémenter vous-même l'opération supplémentaire. Pour cela, jQuery est absolument nécessaire.
Dans mon cas, je ne comprenais pas le jeu de formulaires en ligne et jQuery était sur le point d'être étudié, donc cela n'a pas fonctionné comme je m'y attendais et j'ai eu du mal. C'est facile une fois que vous avez tout compris.
Comment puis-je ajouter une ligne? Je partagerai tout ce que j'ai appris.
Choses à faire
En fonction du formulaire de commande, utilisez jQuery pour implémenter un bouton pour ajouter un formulaire à l'ensemble de formulaires en ligne.
Je n'expliquerai pas les bases de Python et Django.
environnement
python 3.6.9、 Django 3.0.8
Bootstrap 4.5.0、 jQuery 3.5.1 slim
Production
Commençons par un ensemble de formulaires en ligne normal et voyons comment Django gère autant de formulaires. Dans le didacticiel officiel, Il est écrit ici (L'explication de l'ensemble de formulaires, mais la gestion des formulaires est également dans l'ensemble de formulaires en ligne. Ce sera pareil).
La source est mise ici.
Veuillez saisir les données "Client" et "Produit" depuis l'écran de gestion.
Le modèle d'affichage du formulaire est le suivant. (Extrait)
{{form}} affiche la "date de commande" et le "client" dans la partie en-tête. La partie écrite dans le langage de modèle de Django est convertie en HTML pour l'affichage Web. Comment cette pièce est-elle convertie? Essayez d'afficher la source de la page dans votre navigateur.
Django a écrit beaucoup de choses. ↓ (je mets des notes, des sauts de ligne, etc.)