我想只允许输入 Django 的所有字符使用 0-9 字符CharField
。
当我RegexValidator()
使用regex = r'[^0-9]'
. 我可以在该字段中输入除0-9 之外的所有内容。实际上,它允许我输入像"word"
, "a4523"
, "!#$%#^%"
, and之类的字符串"5432bc"
,但不能 "4523"
。
如果我取出^
and 设置regex = r'[0-9]'
(见下面的代码),那么我可以输入"4523"
, "5432bc"
, and"a4523"
但不能 "word"
输入or "!#$%#^%"
。
删除^
似乎让我朝着正确的方向前进,但不是完整的方式。我不想使用 aPositiveSmallIntegerField
因为我想将数字输入视为字符串。
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),
],
)