Djangoに入力されたすべての文字に対して0〜9文字のみを許可したいと思いますCharField。
と一緒に使用するRegexValidator()場合regex = r'[^0-9]'。フィールドに0〜9以外のすべてを入力できます。実際には、、、、、、などの文字列を入力できますが、は"word"入力"a4523"できません。"!#$%#^%""5432bc" "4523"
を取り出して^設定するとregex = r'[0-9]'(以下のコードを参照)、、、を入力できますが、"4523"またはは入力できません。"5432bc""a4523" "word""!#$%#^%"
を削除する^と、正しい方向に進むように見えますが、完全な方法ではありません。PositiveSmallIntegerField数値入力を文字列として扱いたいので、を使用したくありません。
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),
],
)