WTForms Validator NoneOf 未正确激活
WTForms Validator NoneOf is not activating properly
我正在尝试制作一个表单,在 WTForms 中使用空格和逗号来回退用户名。我尝试使用 NoneOf 验证器,但它没有激活。有什么建议么?我将用户名命名为 rusername 以消除我的页面与登录页面的冲突。
这是我的表格供参考。
class RegistrationForm(FlaskForm):
rusername = StringField(_l('Username'), validators=[DataRequired(), NoneOf([',', ' '], "Invalid value, can't be any of: %(values)s")])
rpassword = PasswordField(_l('Password'), validators=[DataRequired()])
rpassword2 = PasswordField(_l('Repeat Password'), validators=[DataRequired(), EqualTo('rpassword')])
recaptcha = RecaptchaField()
signupsubmit = SubmitField(_l('Register'))
def validate_rusername(self, rusername):
user = User.query.filter_by(username=rusername.data).first()
if user is not None:
raise ValidationError(_('Username taken :( Please use a different one.'))
这是模板中的代码。它加载良好并且运行良好,但 NoneOf 验证不 运行.
{{ registrationForm.rusername(placeholder='Username', rows='1', maxlength='300', class='input form-control') }}
NoneOf
验证器检查是否完全匹配(例如用户名中的错误词)。如果要进行 regexp-like 验证,则需要使用 Regexp()
validator.
rusername = StringField(_l('Username'), validators=[
DataRequired(),
Regexp('^[\w-]+$', message='Username can contain only alphanumeric characters (and _, -).'),
])
此 allows 用户名包含字母数字字符、下划线和破折号。您也可以添加其他特殊字符。
我正在尝试制作一个表单,在 WTForms 中使用空格和逗号来回退用户名。我尝试使用 NoneOf 验证器,但它没有激活。有什么建议么?我将用户名命名为 rusername 以消除我的页面与登录页面的冲突。
这是我的表格供参考。
class RegistrationForm(FlaskForm):
rusername = StringField(_l('Username'), validators=[DataRequired(), NoneOf([',', ' '], "Invalid value, can't be any of: %(values)s")])
rpassword = PasswordField(_l('Password'), validators=[DataRequired()])
rpassword2 = PasswordField(_l('Repeat Password'), validators=[DataRequired(), EqualTo('rpassword')])
recaptcha = RecaptchaField()
signupsubmit = SubmitField(_l('Register'))
def validate_rusername(self, rusername):
user = User.query.filter_by(username=rusername.data).first()
if user is not None:
raise ValidationError(_('Username taken :( Please use a different one.'))
这是模板中的代码。它加载良好并且运行良好,但 NoneOf 验证不 运行.
{{ registrationForm.rusername(placeholder='Username', rows='1', maxlength='300', class='input form-control') }}
NoneOf
验证器检查是否完全匹配(例如用户名中的错误词)。如果要进行 regexp-like 验证,则需要使用 Regexp()
validator.
rusername = StringField(_l('Username'), validators=[
DataRequired(),
Regexp('^[\w-]+$', message='Username can contain only alphanumeric characters (and _, -).'),
])
此 allows 用户名包含字母数字字符、下划线和破折号。您也可以添加其他特殊字符。