我想只允许输入 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),
],
)