正则表达式验证程序不适用于Django管理表单

时间:2017-06-14 11:25:16

标签: django django-models django-forms

我尝试将RegexValidator与CharField一起使用,但我无法使其正常工作......

class Configuration(models.Model):
    name = models.CharField(verbose_name=u'Name', validators =
           [RegexValidator(regex="[a-z]", message="Not cool", code="nomatch")])

然后我用

注册它
admin.site.register(Configuration)

但是在管理表单中,它接受任何可能的名称......验证系统是否会像那样工作,或者我错过了什么?

1 个答案:

答案 0 :(得分:2)

您当前的正则表达式检查您的值是否包含a-z中的单个字符。因此它允许a,但它也允许a1

尝试将正则表达式更改为:

regex=r"^[a-z]+$"

通过包含^$来标记字符串的开头和结尾,可以确保字符串只包含a-z中的字符。 +允许多个字符。