Citation:
1) Certains champs de saisie, facultatifs pour mon application, apparaissent seulement si le visiteur clique sur le bouton approprié. Du genre "cliquez ici pour indiquer votre couleur préférée". Dans ce cas il pourrait par exemple s'agir de champs masqués qui apparaissent lors de l'appui sur le bouton.
Dans ce cas au niveau de ta déclaration de formulaire Django, tu peux ajouter une classe CSS qui te permettra de cacher ces champs ( via les règles CSS: display:None, ) puis via un bout de code Js, gérer l'affichage au besoin.
Citation:
2) Certains champs de saisie, toujours les mêmes, soient ajoutés lors de l'appui sur un bouton, un peu comme si on ajoutait une ligne à un tableur. Du genre ""cliquez ici pour ajouter un nouvel enregistrement". Dans ce cas l'utilisateur devra pouvoir entrer autant d'enregistrement qu'il le désire : 1, 10 , 1000 ... Évidement il faudra utiliser la barre de défilement pour voir tous les champs.
Pour ce second point, tu devrais utiliser les FormSet qui sont prévu pour ça et t'évite beaucoup de code pour gérer les vérification, l'ajout de champs etc ...