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),
],
)