Comment générer des champs dynamiques dans WTForms
Je suis en train de générer un formulaire en WTForms qui a dynamique des champs selon cette documentation http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html#dynamic-form-composition
J'ai cette classe de sous-formulaire qui permet à l'utilisateur de choisir les articles à acheter à partir d'une liste:
class Item(Form):
itmid = SelectField('Item ID')
qty = IntegerField('Quantity')
class F(Form):
pass
Il n'y aura plus d'une catégorie d'achats, donc je voudrais générer une dynamique sur le terrain basé sur ce que les catégories de l'utilisateur à choisir:
fld = FieldList(FormField(Item))
fld.append_entry()
mais j'obtiens l'erreur suivante:
AttributeError: 'UnboundField' object has no attribute 'append_entry'
Je fais quelque chose de mal, ou est-il aucun moyen de faire cela de WTForms?
source d'informationauteur ChiliConSql
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur cette question ce soir et fini avec cela. J'espère que cela aide les futurs personnes.
RecipeForm.py
views.py
J'ai trouvé ce post utile aussi bien
J'utilise la classe étendue la classe baseform pour tous mes formes et avoir une pratique append_field fonction de la classe.
Renvoie la classe avec le champ ajouté, depuis les instances (des champs de Formulaire) ne peut pas ajouter des champs.
Affichage sans avoir à écrire de code ou de tester le code, mais peut-être que ça vous donnera quelques idées. Aussi, cela pourrait peut-être seulement permettent de compléter les données nécessaires.
Vous devez remplir
choices
pourSelectField
pour être en mesure de voir les données et la possibilité de les sélectionner. Lorsque vous remplissez? Initiale de remplissage doit être dans la forme de définition, mais si vous aimez dynamique, je vous propose de le modifier dans l'endroit où vous la création de ce formulaire pour montrer à l'utilisateur. Comme la vue où vous faites un peu deform = YourForm()
puis en le passant au modèle.Comment remplir le formulaire de sélection de champ avec des choix? Vous devez avoir une liste de tuples, puis quelque chose comme ceci:
categories
ici doit être dictionnaire contenant vos catégories dans un format{1:'One', 2:'Two',...}
Donc, si vous assigner quelque chose à faire des choix lors de la définition de la forme que les données depuis le début, et où vous avez besoin d'avoir de l'utilisateur de catégories, juste à le remplacer dans la vue.
Espère que cela va vous donner quelques idées et vous pouvez aller de l'avant 🙂
avez-vous essayé d'appeler
append_entry()
sur l'instance du formulaire au lieu de la FieldList définition?WTForms Documentation : classe wtforms.champs.SelectField
Sélectionner les champs dynamiques choix des valeurs: