Je veux permettre uniquement caractères 0-9 pour tous les caractères saisis dans un fichier Django CharField
.
Quand j'utilise RegexValidator()
con regex = r'[^0-9]'
. Je peux tout saisir mais 0-9 dans le champ. En fait, cela me permettra d'entrer une chaîne de caractères telle que "word"
, "a4523"
, "!#$%#^%"
y "5432bc"
mais pas "4523"
.
Si j'enlève le ^
et mettre regex = r'[0-9]'
(voir le code ci-dessous) alors je peut entrez "4523"
, "5432bc"
y "a4523"
mais pas "word"
o "!#$%#^%"
.
Retirer le ^
semble me mettre dans la bonne direction, mais pas complètement. Je ne veux pas utiliser un PositiveSmallIntegerField
parce que je veux traiter l'entrée numérique comme une chaîne de caractères.
class Number(models.Model):
number = models.CharField(
max_length=14,
validators=[
RegexValidator(
r'[0-9]',
'Only 0-9 are allowed.',
'Invalid Number'
),
MinLengthValidator(4),
MaxLengthValidator(14),
],
)