Je viens de commencer à utiliser django. Je suis tombé sur des formulaires et j'ai besoin de savoir lequel est le meilleur moyen de valider un formulaire. Serait-ce en utilisant des formulaires django ou devrions-nous utiliser javascript ou un langage de script côté client pour le faire?Validation de formulaire dans django
Répondre
Vous devez TOUJOURS valider votre formulaire côté serveur, la validation côté client n'est qu'une commodité pour l'utilisateur uniquement. Cela étant dit, Django forms a une variable form.errors qui indique si certains champs de formulaire étaient incorrects.
{{form.name_of_field.errors}} peut vous donner chaque erreur individuelle de chaque champ incorrectement rempli. Voir plus ici:
Une chose que les docs * ne mentionnent pas est l'existence de {{form.non_field_errors}} lorsque vous voulez obtenir * juste * les erreurs qui s'appliquent au formulaire dans son ensemble. –
Oui, je trouve que les docs manquent sur beaucoup de choses, ou ils ne vont tout simplement pas dans les détails. J'espère qu'à mesure que le cadre évoluera, les docs le feront aussi. – AlbertoPL
Pour réitérer ce qu'a dit Alberto: La validation côté client n'est pas une validation. Tout le monde peut créer une requête POST ou GET. Le seul avantage réel que vous obtenez de la validation côté client est la «sensation Web 2.0 AJAXy» pour l'utilisateur, mais ce n'est pas la validation - cela se passe côté serveur. – ShawnMilo
Il y a une application Django connectables (django-ajax-forms) qui permet de valider les formulaires sur le côté client via JavaScript. Mais comme le dit AlbertoPL, utilisez la validation côté client uniquement comme une mesure d'utilisabilité (par exemple en disant à un utilisateur que son nom d'utilisateur désiré est déjà pris sans recharger la page d'inscription). Il y a toutes sortes de façons de contourner la validation côté client, dans la plupart des cas aussi simple que de désactiver JavaScript.
De manière générale: présumer que toutes les données provenant de l'extérieur sont défectueuses jusqu'à leur validation.
Nous venons d'arriver à django-floppyforms, qui semble effectuer la validation côté client par défaut. Ils utilisent HTML5 qui supporte la validation des clients par défaut. Je ne sais pas si elles utilisent également javascript si le navigateur ne supporte pas HTML5. Je ne l'ai pas encore essayé.
Lien vers django-floppyforms: Documentation et Github
Vous aurez besoin de faire est JS. This app intègre des formulaires avec parsley.js pour marquer les formulaires avec les attributs data- * corrects automatiquement.
Si vous utilisez bootstrap, vous pouvez simplement ajouter l'attribut requis dans le champ des formulaires. Par exemple, s'il y a champ programe alors vous pouvez le valider comme:
En forms.py:
programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'}))
Note: Il faut faire un lien vers bootstrap fichiers dans votre .html
page de cette forme.
- 1. validation de formulaire dans django
- 2. IP interdit dans la validation de formulaire Django
- 3. Validation de formulaire Rails
- 4. Validation de formulaire XML?
- 5. Validation de forme contextuelle dans Django
- 6. django variable de formulaire
- 7. Validation de formulaire personnalisé dans CakePHP
- 8. tableau de validation Django d'erreurs
- 9. Django ImageField validation & PIL
- 10. validation formulaire JQuery
- 11. Nettoyage des données de formulaire dans Django
- 12. validation du formulaire jquery avec deux messages de validation
- 13. Cadre de validation de formulaire Django sur AppEngine: Comment supprimer HTML, etc.
- 14. jQuery/JavaScript Validation de formulaire de date
- 15. Création de données Django et validation
- 16. Validation du formulaire avec ModelState
- 17. Validation de fichier vidéo en django
- 18. Insertion d'une rubrique dans un formulaire Django
- 19. Validation de formulaire multipage avec php
- 20. Validation de formulaire de case à cocher dans Firefox
- 21. Est-ce un bug dans la validation de formset Django?
- 22. Exécuter le code après validation de la transaction dans Django
- 23. validation de formulaire javascript en ligne
- 24. Validation de formulaire en temps réel jQuery
- 25. Validation simple de formulaire ASP - permuté?
- 26. options de validation d'entrée dans le formulaire ASP.NET MVC 1.0+
- 27. Prépopulation de Django (non-modèle) Formulaire
- 28. Django réorganise les champs de formulaire?
- 29. Valeurs de formulaire Django sans échappement HTML
- 30. Beaucoup de fichiers à télécharger dans le formulaire ImageField - django
Vous obtiendrez beaucoup plus de lecteurs avec le tag 'django' qu'une sous-étiquette comme' django-forms'. Essayez toujours d'inclure au moins une balise pour la plate-forme/langue principale que vous utilisez (par exemple '.net',' java', 'django', etc.), surtout si vous n'avez pas atteint la limite de cinq balises. – Zifre