J'ai écrit un validateur personnalisé, qui déclenchera ValidationError si la valeur de champ donnée est négative.Django Custom Validators ne fonctionne pas
def validate_positive(value):
if value < 0:
raise ValidationError(
_('%(value) is negative number'),
params = {'value': value}
)
i a ajouté à mon champ de modèle via l'argument de validateurs de champ
class Book(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
title = models.CharField(max_length=50)
price = models.IntegerField(default=0,validators=[validate_positive])
quantity = models.IntegerField(default=0,validators=[validate_positive])
Mais tout en créant l'objet ce n'est pas formuler d'erreur si le prix est inférieur à zéro.
Je ne sais pas où je me trompe et je suis nouveau à django. J'utilise Django 1.9.
S'il vous plaît aidez-moi.
Les validateurs sont utilisés pour les formulaires, pas pour créer un objet. Si vous créez un objet en dehors d'un formulaire, vous devez fournir une méthode alternative pour valider l'entrée. – Sayse
@Sayse alors comment valider l'entrée qui est donnée aux champs du modèle? – rock