Comment faire un formulaire à étapes multiples dans Django?
Je voudrais créer un multi-étape de forme dans Django qui ne soumet les données à des fins de traitement à la fin de toutes les étapes. Chaque étape doit être en mesure d'accéder et d'afficher les données que nous sommes entrés dans l'étape précédente(s).
Est-il un moyen de le faire avec Django? Django Forme-Assistant ne peut pas gérer cette fonctionnalité de base.
OriginalL'auteur Saqib Ali | 2013-02-15
Vous devez vous connecter pour publier un commentaire.
Bien sûr, il y a un moyen de le faire dans Django.
Est une façon de tenir vos valeurs en session jusqu'à ce que vous soumettez à la fin. Vous pouvez remplir vos formulaires en utilisant les valeurs détenues dans la session si vous retournez à l'étape précédente.
Avec quelques recherches, vous pouvez trouver une application que quelqu'un a déjà écrit qu'à faire ce que vous voulez, mais de faire ce que vous avez besoin n'est pas dur à faire avec Django, ou de tout autre cadre.
Exemple, en ignorant les instructions d'importation:
Nous allons supposer que
step2.html
a un lien pour revenir à step1.html.Vous remarquerez que dans la
step1
vue que je suis en tirant la valeur pourfn
de session qui a été défini lorsque le formulaire a été enregistré. Vous devez conserver les valeurs de toutes les étapes précédentes dans la session. À la fin des étapes, de saisir les valeurs, créer vos objets et vous rediriger vers unfinished
vue, quel qu'il soit.Ce code a été testé, mais ça devrait arriver.
En fait, j'ai jamais utilisé l'assistant de création de formulaire dans Django, et je travaille avec elle depuis 0.96, mais apparemment, les OP sur cette question n'a jamais trouvé la réponse.
Que l'opération était moi 🙂
Haha! Désolé, j'ai complètement oublié le nom de l'utilisateur.
Avez-vous des exemples de code comment le faire? Si oui, j'aimerais voir votre point de vue & fonctions de formulaire afin que je puisse généralement copie de la méthodologie. Comment voulez-vous tenir ces valeurs dans la session?
OriginalL'auteur
Vous pouvez facilement le faire avec le assistant de création de formulaire de django-formtools. Un exemple simple serait quelque chose comme ce qui suit.
forms.py
views.py
urls.py
Merci pour le heads up. J'ai mis à jour le lien et l'ajout d'informations pour Django 1.8.
OriginalL'auteur