ValidateursLien vers cette rubrique
Écriture de validateursLien vers cette rubrique
Un validateur est un exécutable acceptant une valeur et générant ValidationError si celle-ci ne répond pas à certains critères. Les validateurs peuvent être utiles pour réutiliser la logique de validation entre différents types de champs.
Par exemple, voici un validateur qui n’autorise que les nombres pairs :
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_even(value):
if value % 2 != 0:
raise ValidationError(
_('%(value)s is not an even number'),
params={'value': value},
)
Vous pouvez l’ajouter à un champ de modèle via le paramètre validators du champ :
from django.db import models
class MyModel(models.Model):
even_field = models.IntegerField(validators=[validate_even])
Comme les valeurs sont converties en Python avant que les validateurs ne soient exécutés, vous pouvez même utiliser les mêmes validateurs avec les formulaires :
from django import forms
class MyForm(forms.Form):
even_field = forms.IntegerField(validators=[validate_even])
Vous pouvez aussi utiliser une classe avec une méthode __call__() pour des validateurs plus complexes ou configurables. Par exemple, RegexValidator utilise cette technique. Si un validateur basé sur une classe est utilisé dans l’option de champ de modèle validators, vérifiez qu’il puisse être sérialisé par le système des migrations en lui ajoutant les méthodes deconstruct() et __eq__().
Exécution des validateursLien vers cette rubrique
Consultez la validation des formulaires pour plus d’informations sur la manière dont les validateurs sont exécutés dans les formulaires, et validation d’objets sur leur manière d’être exécutés pour les modèles. Notez que les validateurs ne sont pas exécutés automatiquement lorsque vous enregistrez un modèle, mais si vous utilisez un formulaire ModelForm, celui-ci applique les validateurs sur tous les champs inclus dans le formulaire. Consultez la documentation des ModelForm pour plus d’informations sur la manière dont la validation des modèles interagit avec les formulaires.
Validateurs intégrésLien vers cette rubrique
Le module django.core.validators contient une collection de validateurs exécutables à destination des champs de modèles et de formulaires. Ils sont utilisés en interne mais sont aussi à disposition pour vos propres champs. Ils peuvent être employés en plus ou à la place de méthodes field.clean() personnalisées.
RegexValidatorLien vers cette rubrique
- class RegexValidator(regex=None, message=None, code=None, inverse_match=None, flags=0)Lien vers cette définition
- Paramètres:
regex – Si différent de
None, surchargeregex. Cela peut être une chaîne d’expression régulière ou une expression régulière précompilée.message – Si différent de
None, surchargemessage.code – Si différent de
None, surchargecode.inverse_match – Si différent de
None, surchargeinverse_match.flags – Si différent de
None, surchargeflags. Dans ce cas,regexdoit être une chaîne d’expression régulière sous peine de générer une exceptionTypeError.
- regexLien vers cette définition
Le motif d’expression régulière à rechercher dans la valeur
valuefournie, ou une expression régulière précompilée. Par défaut, génère une exceptionValidationErroravecmessageetcodequand aucune correspondance n’est trouvée. Ce comportement standard peut être inversé en définissantinverse_matchàTrue, auquel cas une erreurValidationErrorest générée dans le cas où une correspondance est trouvée. Par défaut, correspond à n’importe quelle chaîne (y compris une chaîne vide).
- messageLien vers cette définition
Le message d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"Saisissez une valeur valide".
- codeLien vers cette définition
Le code d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"invalid".
- inverse_matchLien vers cette définition
Le mode de correspondance pour
regex. Sa valeur par défaut estFalse.
- flagsLien vers cette définition
Les drapeaux utilisés lors de la compilation de la chaîne d’expression régulière
regex. Siregexest une expression régulière précompilée et queflagsest défini, une exceptionTypeErrorest générée. La valeur par défaut est0.
EmailValidatorLien vers cette rubrique
- class EmailValidator(message=None, code=None, whitelist=None)Lien vers cette définition
- Paramètres:
- messageLien vers cette définition
Le message d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"Saisissez une adresse de courriel valide".
- codeLien vers cette définition
Le code d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"invalid".
- whitelistLien vers cette définition
Liste blanche de domaines de messagerie à autoriser. Par défaut, une expression régulière (l’attribut
domain_regex) est utilisée pour valider tout ce qui apparaît après le signe @. Cependant, si cette chaîne apparaît dans la liste blanche, cette validation est ignorée. Si ce paramètre n’est pas indiqué, sa valeur par défaut est['localhost']. D’autres domaines qui ne contiennent pas de point ne passeront pas la validation, il est donc nécessaire de les ajouter à la liste blanche s’ils sont valides selon vous.
URLValidatorLien vers cette rubrique
- class URLValidator(schemes=None, regex=None, message=None, code=None)Lien vers cette définition
Un
RegexValidators’assurant qu’une valeur réponde aux critères d’une URL, et générant un code d’erreur'invalid'dans le cas contraire.Les adresses de type « loopback » (boucle locale) et les espaces IP réservés sont considérés comme valides. Les adresses IPv6 littérales (RFC 2732) et les domaines unicode sont tous deux pris en charge.
En plus des paramètres facultatifs de sa classe parente
RegexValidator,URLValidatoraccepte un attribut facultatif supplémentaire :- schemesLien vers cette définition
Liste de protocoles URL/URI à valider. Lorsque ce paramètre est omis, la liste par défaut est
['http', 'https', 'ftp', 'ftps']. Le site Web de la IANA fournit comme référence la liste complète des protocoles d’URI valides.
validate_emailLien vers cette rubrique
- validate_emailLien vers cette définition
Une instance
EmailValidatorsans aucune personnalisation.
validate_slugLien vers cette rubrique
- validate_slugLien vers cette définition
Une instance de
RegexValidators’assurant qu’une valeur ne soit composée que de lettres, de chiffres, de soulignements ou de tirets.
validate_unicode_slugLien vers cette rubrique
- validate_unicode_slugLien vers cette définition
Une instance de
RegexValidators’assurant qu’une valeur ne soit composée que de lettres Unicode, de chiffres, de soulignements ou de tirets.
validate_ipv4_addressLien vers cette rubrique
- validate_ipv4_addressLien vers cette définition
Une instance de
RegexValidators’assurant qu’une valeur réponde aux critères d’une adresse IPv4.
validate_ipv6_addressLien vers cette rubrique
- validate_ipv6_addressLien vers cette définition
Utilise
django.utils.ipv6pour vérifier la validité d’une adresse IPv6.
validate_ipv46_addressLien vers cette rubrique
- validate_ipv46_addressLien vers cette définition
Utilise à la fois
validate_ipv4_addressetvalidate_ipv6_addresspour s’assurer qu’une valeur soit une adresse IPv4 ou IPv6 valide.
validate_comma_separated_integer_listLien vers cette rubrique
- validate_comma_separated_integer_listLien vers cette définition
Une instance de
RegexValidators’assurant qu’une valeur contienne une liste de nombres entiers séparés par des virgules.
int_list_validatorLien vers cette rubrique
- int_list_validator(sep=',', message=None, code='invalid', allow_negative=False)Lien vers cette définition
Renvoie une instance de
RegexValidators’assurant qu’une chaîne ne contienne que des nombres entiers séparés parsep. Les entiers négatifs sont autorisés lorsqueallow_negativevautTrue.
MaxValueValidatorLien vers cette rubrique
- class MaxValueValidator(limit_value, message=None)Lien vers cette définition
Génère une exception
ValidationErroravec le code'max_value'si la valeurvalueest plus grande quelimit_value.
MinValueValidatorLien vers cette rubrique
- class MinValueValidator(limit_value, message=None)Lien vers cette définition
Génère une exception
ValidationErroravec le code'min_value'si la valeurvalueest plus petite quelimit_value.
MaxLengthValidatorLien vers cette rubrique
- class MaxLengthValidator(limit_value, message=None)Lien vers cette définition
Génère une exception
ValidationErroravec le code'max_length'si la longueur de la valeurvalueest plus grande quelimit_value.
MinLengthValidatorLien vers cette rubrique
- class MinLengthValidator(limit_value, message=None)Lien vers cette définition
Génère une exception
ValidationErroravec le code'min_length'si la longueur de la valeurvalueest plus petite quelimit_value.
DecimalValidatorLien vers cette rubrique
- class DecimalValidator(max_digits, decimal_places)Lien vers cette définition
Génère une exception
ValidationErroravec les codes suivants :'max_digits'si le nombre de chiffres est plus grand quemax_digits.'max_decimal_places'si le nombre de chiffres après la virgule est plus grand quedecimal_places.'max_whole_digits'si le nombre de chiffres de la partie entière est plus grand que la différence entremax_digitsetdecimal_places.
FileExtensionValidatorLien vers cette rubrique
- class FileExtensionValidator(allowed_extensions, message, code)Lien vers cette définition
Génère une exception
ValidationErroravec le code'invalid_extension'si l’extension devalue.name(valueétant un objetFile) ne se trouve pas dansallowed_extensions. La comparaison d’extension avecallowed_extensionsest insensible à la casse.
validate_image_file_extensionLien vers cette rubrique
- validate_image_file_extensionLien vers cette définition
Utilise Pillow pour s’assurer que
value.name(valueétant un objetFile) est une extension d’image valide.
ProhibitNullCharactersValidatorLien vers cette rubrique
- class ProhibitNullCharactersValidator(message=None, code=None)Lien vers cette définition
-
Génère une exception
ValidationErrorsistr(value)contient un ou plusieurs caractères nuls ('\x00').- Paramètres:
- messageLien vers cette définition
Le message d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"Les caractères nuls ne sont pas autorisés".
- codeLien vers cette définition
Le code d’erreur utilisé par
ValidationErrorsi la validation échoue. La valeur par défaut est"null_characters_not_allowed".