我写了这个验证器:
no_space_validator = RegexValidator(
r'^[^\s]+$',
_('No spaces allowed'),
code='invalid_username')
我将它设置在表单字段中:
username = CharField(
label='Username',
validators=[no_space_validator])
但它仍允许我提交带空格的用户名。我无法在这里看到我的正则表达式是错误的,或者我怎么能以任何其他方式表达空格。
答案 0 :(得分:1)
你可以这样做(注意大写S):
no_space_validator = RegexValidator(
r'^[^\S]+$',
_('No spaces allowed'),
code='invalid_username')
阅读文档了解更多信息: https://docs.djangoproject.com/en/dev/ref/validators/#regexvalidator
答案 1 :(得分:0)
这是更简单的方法:
no_space_validator = RegexValidator(
r' ',
_('No spaces allowed'),
inverse_match=True,
code='invalid_tag',
)