La vérification des données du formulaire Django est un lien clé pour le développement Web pour garantir que les données utilisateur collectées répondent aux besoins de l'application. Django fournit une variété de méthodes de vérification sur le terrain, qui expliquera progressivement cet article.
Par exemple, assurez-vous que la longueur maximale du champ
est de 100 caractères. Puisqu'il est first_name
, vous pouvez utiliser CharField
Paramètres: max_length
<code class="language-python">from django import forms class PersonalInfo(forms.Form): first_name = forms.CharField(max_length=100)</code>
Supposons que la valeur minimale du champ
est de 18. Bien que les paramètres puissent être utilisés directement, comment utiliser le: age
min_value
Le module MinValueValidator
Django
<code class="language-python">from django import forms from django.core.validators import MinValueValidator class PersonalInfo(forms.Form): first_name = forms.CharField(max_length=100) age = forms.IntegerField(validators=[MinValueValidator(18)])</code>
validators
Astuce: ValidationError
Afin de garder le code ordonné, vous pouvez envisager de mettre le périphérique de vérification personnalisé dans un fichier séparé, tel que
<code class="language-python">from django import forms from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator def validate_even(value): if value % 2 != 0: raise ValidationError(f"{value} 不是偶数") class PersonalInfo(forms.Form): first_name = forms.CharField(max_length=100) age = forms.IntegerField(validators=[MinValueValidator(18)]) even_field = forms.IntegerField(validators=[validate_even])</code>
Utiliser Méthode validators.py
clean_<fieldname>()
clean_<fieldname>()
Cette méthode peut accéder directement aux données de nettoyage du champ et permettre une vérification de contrôle plus détaillée.
even_field
<code class="language-python">from django import forms from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator class PersonalInfo(forms.Form): first_name = forms.CharField(max_length=100) age = forms.IntegerField(validators=[MinValueValidator(18)]) even_field = forms.IntegerField() def clean_even_field(self): even_field_validated = self.cleaned_data.get("even_field") if even_field_validated % 2 != 0: raise ValidationError(f"{even_field_validated} 不是偶数") return even_field_validated</code>
clean()
En réécrivant la méthode , vous pouvez réaliser la logique logique personnalisée de l'ensemble du formulaire pour vous assurer que les données répondent aux exigences plus compliquées.
Résumé django fournit des méthodes de vérification de formulaire multiples: clean()
max_length
ou min_value
et d'autres paramètres pour une vérification simple. clean_<fieldname>()
clean()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!