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

正则表达式验证程序不适用于Django管理表单,django,django-models,django-forms,Django,Django Models,Django Forms,我尝试使用带有CharField的RegexValidator,但无法使其工作 class Configuration(models.Model): name = models.CharField(verbose_name=u'Name', validators = [RegexValidator(regex="[a-z]", message="Not cool", code="nomatch")]) 然后我就注册了 admin.site.register(Con

我尝试使用带有CharField的RegexValidator,但无法使其工作

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)

但在管理表单中,它接受任何可能的名称。。。验证系统是这样工作的,还是我遗漏了什么?

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

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

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

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

谢谢,我想,^和$where是自动的。我有一个类似的问题,我在我的一个字段中添加了两个
RexexValidator
s,但是当我从shell中处理这个字段并保存对象时,它不会引发任何
ValidationError
异常。我有点困惑,我以为这是在一个模型中,以防止任何不可靠的数据进入数据库。