Je viens de commencer à utiliser Django. Je suis tombé sur des formes et j'ai besoin de savoir lequel est le meilleur moyen de valider une forme. Serait-ce utiliser des formulaires Django ou devrions-nous utiliser JavaScript ou une langue de script du côté client pour le faire? p>
5 Réponses :
Vous devez toujours valider votre formulaire sur le côté serveur, la validation du côté client n'est qu'une commodité uniquement pour l'utilisateur. P>
qui étant dit, les formes Django ont une forme variable.Errors qui montre si certains champs de formulaire étaient incorrects. P>
{{form.name_of_field.errors}} peut vous donner chaque erreur individuelle de chaque champ qui est rempli de manière incorrecte. En voir plus ici: P>
Une chose que les docs ne mentionnent pas i> la mention est l'existence de {{form.non_field_errors}} pour quand vous souhaitez obtenir à juste i> les erreurs qui s'appliquent au formulaire comme un ensemble.
Oui, je trouve que les docs manquent de nombreuses choses, sinon ils ne vont tout simplement pas dans les détails. J'espère que comme le cadre évolue les documents.
Pour réitérer ce que Alberto a déclaré: la validation du côté client n'est pas une validation. Tout le monde peut fabriquer un poste ou obtenir une demande. Le seul avantage réel que vous obtenez de la validation de la clientèle est la «Senteur Web 2.0 Ajaxy» pour l'utilisateur, mais ce n'est pas la validation - qui a lieu côté serveur.
Il y a une application pluggable django ( django-ajax-formulaire ) Aide à valider les formulaires sur le côté du client via JavaScript. Mais comme le dit AlbertoPL, utilisez la validation du côté client uniquement comme mesure de convivialité (par exemple, indiquant à un utilisateur que son nom d'utilisateur souhaité est déjà pris sans recharger la page d'enregistrement). Il existe toutes des façons de la validation du côté du client Sidestep, dans la plupart des cas aussi simples que la désactivation de JavaScript. p>
En règle générale: Préparez toutes les données provenant de l'extérieur comme défectueuses jusqu'à validation. P>
vient de venir accross Django-floppyforms, ce qui semble faire de la validation des clients par défaut. Ils utilisent HTML5 qui prend en charge la validation des clients par défaut. Pas sûr s'ils utilisent également JavaScript si le navigateur ne prend pas en charge HTML5. Je n'ai pas encore essayé moi-même. P>
Lien vers Django-Floppyforms: Documentation et Github P>
Vous devrez faire ceci est JS. Cette application intègre des formulaires avec Parsley.js pour baliser les formulaires avec des attributs de données corrects - automatiquement. P>
Si vous utilisez Bootstrap, vous pouvez simplement ajouter l'attribut requis dans le champ Formulaires. Par exemple, s'il y a un champ de programme, vous pouvez le valider comme:
in formulaires.py:
programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'}))
Vous obtiendrez beaucoup plus de téléspectateurs avec la balise
django code> qu'un sous -tag commedjango-formulaires code>. Toujours essayer d'inclure au moins une balise pour la plate-forme principale / la langue que vous utilisez (telle que.NET code>,java code>,django code>, etc. ), surtout lorsque vous n'avez pas frappé la limite de balises.