Django表格没有空格验证器(RegexValidator)

时间:2015-06-12 17:13:01

标签: python regex django forms

我写了这个验证器:

no_space_validator = RegexValidator(
    r'^[^\s]+$',
    _('No spaces allowed'),
    code='invalid_username')

我将它设置在表单字段中:

username = CharField(
    label='Username',
    validators=[no_space_validator])

但它仍允许我提交带空格的用户名。我无法在这里看到我的正则表达式是错误的,或者我怎么能以任何其他方式表达空格。

2 个答案:

答案 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',
  )