我试图得到它,以便验证器告诉你“用户名必须是字母数字”。到目前为止这是我的代码。我已经确认它会在正确的时间验证。唯一的问题是,无论我尝试什么,RegexValidator仍然会丢失默认错误(“输入有效值”)。
这是我的代码。我也试过没有前面的'message =',它仍然说“输入有效值”,而不是“用户名必须是字母数字”
user = CharField(
max_length=30,required=True,
validators=[
RegexValidator('^[a-zA-Z0-9]*$',
message='Username must be Alphanumeric'
),
]
)
答案 0 :(得分:28)
如何添加错误代码:
user = CharField(
max_length=30,
required=True,
validators=[
RegexValidator(
regex='^[a-zA-Z0-9]*$',
message='Username must be Alphanumeric',
code='invalid_username'
),
]
)
答案 1 :(得分:4)
我也无法运行RegexValidator。但我试图通过保存模型实例来引发错误。它不会这样工作!只有在使用ModelForms时,才会自动调用验证器。
在https://docs.djangoproject.com/en/dev/ref/validators/#how-validators-are-run
中请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序。“
答案 2 :(得分:0)
尝试传递messsage
as,
user = CharField(
max_length=30,
required=True,
validators=[
RegexValidator(
regex=r'^[a-zA-Z0-9]*$',
message=_('Username must be Alphanumeric'),
),
]
)
答案 3 :(得分:0)
a validate user name here should contain at least one minuscule letter, one capital letter and one numeric, if i understand your code.
to complete Virendra Rajput answer correct the regex with that:
regex=r'^[a-zA-Z0-9]*$' start with the r'