Django - Champs personnalisés

Table des matières
Nous avons un grand choix de types de champs lorsque nous travaillons avec les formulaires dans DjangoCependant, il arrive un moment où nous avons besoin d'une validation ou de définir un nouveau comportement, pour cela nous pouvons personnaliser nos champs sans problème en utilisant les méthodes de Django.forms.
L'avantage de travailler avec des champs personnalisés dans les formulaires est que nous n'avons pas à nous soucier de leur compatibilité avec plusieurs backends comme si nous devions nous inquiéter lorsque nous créons un nouveau type de champ dans le modèle.
Les champs personnalisés
UNE champ personnalisé dans le formulaire nous permet de générer un support pour des types de saisie de données qui n'existent pas dans le grand nombre d'options qu'il nous offre DjangoGrâce à cela, nous pouvons obtenir des résultats plus personnalisés qui aident notre application à mieux atteindre nos objectifs.
Comment les créer ?Pour créer un champ personnalisé, cela doit hériter de la classe Des champs inclus dans Django.forms, nous garantissons ainsi son bon fonctionnement dans le formulaire; otro aspecto que ya habíamos mencionado es que este tipo de campos es más sencillo de implementar ya que no necesitamos tener en cuenta el trabajo con diferentes backends, es decir, con múltiples bases de datos como lo sería en un modelo, esto se debe a que seul nous évaluerons les données de type chaîne dans le formulaire lorsque l'utilisateur saisit des données.
Validation
C'est peut-être l'aspect fondamental dans la génération de nouveaux champs, puisque lors de la définition d'un type de validation on peut établir le type de champ, puisque la validation est ce qui donnera le caractère unique à ce champ.
Comment inclure une validation ?Pour inclure une validation, nous devons recourir à méthode propre (), cette méthode accepte l'objet de la classe et la valeur en évaluation, alors selon les standards que nous avons créés cette méthode est capable de discerner entre les données saisies et si elles sont conformes ou non à notre validation, sinon, ce sera capable de lever une exception et d'envoyer un message d'erreur que nous avons défini.
Voyons dans l'image suivante un code où deux nouveaux types de champs personnalisés sont générés :

Ici, nous voyons comment nous appliquons tout ce dont nous avons parlé, d'abord nous faisons le importer de des champs dans Django.forms puisque c'est la classe que nous devons utiliser, alors nous créons une classe qui héritera dans ce cas de champs.DecimalField, cela nous permet de comprendre que notre nouveau champ sera numérique.
Ensuite, nous définissons une erreur appelée hors_plageCela nous aide lorsque nous levons une exception au moment de la validation des données pour pouvoir afficher un message qui guide l'utilisateur; cela nous donne la possibilité d'avoir différents types de messages pour différentes erreurs.
ImportantEnfin, nous écrasons le méthode propre à l'intérieur de chaque nouvelle classe afin que nous puissions élaborer la nouvelle validation, nous utilisons d'abord la méthode super propre () avec cet appel à la méthode clean() de la classe field.DecimalFields avec cela nous pouvons valider qu'ils sont d'un type numérique correct avant d'évaluer notre propre validation, ce qui nous évite d'avoir à localiser une validation du type de données saisies, ici l'avantage d'hériter est noté.
Enfin nous validons avec nos conditions et si elles ne sont pas remplies nous relevons l'erreur; nous avons donc déjà créé un champ personnalisé.
Avec cela, nous terminons le tutoriel avec un outil supplémentaire qui nous permet de créer des applications plus proches de nos besoins.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave