J'ai un formulaire qui est généré dynamiquement. Je ne peux pas prédire combien d'entrées de texte ou de choix multiples seront inclus avant la main. Ainsi, je ne peux pas utiliser ModelForm
ou quoi que ce soit de similaire. Je me demande si je peux tirer parti du code de validation intégré des champs Django et les appliquer manuellement, car je peux déterminer le type d'entrées utilisateur (ex: texte, bouton radio, case à cocher, etc.) . Quelque chose comme ça serait génial:Django valide les champs de formulaire manuellement
if type == 'Text':
#perform validation
#get clean data
elif type == 'Checkbox':
#perform validation
#get clean data
MISE À JOUR: Mon site permet aux utilisateurs de générer une enquête en fonction de leurs besoins. Ainsi, par exemple, un utilisateur décide de créer un sondage avec deux questions:
- Quel est votre nom?
- Quelle est la marque de votre smartphone? A) iPhone B) HTC
La première question est <input type="text">
et le second est <input type="radio">
Les informations sur les types de questions sont générées sont stockées dans la base de données. Donc, je voudrais avoir des lignes comme celle-ci dans la DB pour décrire la question:
ID TYPE TEXTE
1 TEXT Quel est votre nom?
2 RADIO quel est votre nom? Lorsque le sondage est en ligne et qu'un utilisateur le remplit. Je dois valider leur contribution. Comment puis-je utiliser la fonctionnalité de validation intégrée de Django pour faire face à cette situation?
Salut Alex, j'ai ajouté plus de description à la question. – Cheng
Vraiment apprécier votre aide. Mais ce que je veux accomplir est d'utiliser la validation de Django pour des champs de saisie individuels sans spécifier de formes. Je n'ai pas besoin de paquets d'enquête existants. Je veux juste savoir que si une chaîne est soumise, comment la valider? Django l'a déjà fait. Il devrait y avoir un paquet qui vous permet de le faire. – Cheng
La validation de Django se fait via des formulaires. Vraiment, les formulaires * sont * pour la validation. Ils prennent simplement les validateurs pour chaque champ, l'exécutent et définissent des erreurs afin que vous puissiez le gérer dans votre HTML, par exemple. Il n'y a pas d'autres "frameworks de validation" ou quelque chose dans Django. Si vous voulez nettoyer vos données, vous utilisez simplement des formulaires. Le problème que vous semblez avoir est de construire une forme dynamique pour un nombre arbitraire de champs.C'est clairement une tâche faisable, voir https://jacobian.org/writing/dynamic-form-generation/ par exemple. –