代码之家  ›  专栏  ›  技术社区  ›  inostia

Wagtail字段上的自定义验证器

  •  0
  • inostia  · 技术社区  · 9 年前

    TextField 我想添加一个 min_length

    根据Django文档,您可以使用内置验证器来强制执行此操作( https://docs.djangoproject.com/en/1.11/ref/validators/#minlengthvalidator ).

    class MyPage(Page):
        ...
        introduction = models.TextField(
            null=True,
            blank=False,
            validators=[MinLengthValidator(240, message="Must be at least 240 chars.")]
    

    然而,当以低于240的值发布此页面时,我没有得到预期的验证错误,而是遇到了一个错误 TypeError : unorderable types: str() < int()

    有没有办法 文本字段 ?

    1 回复  |  直到 9 年前
        1
  •  1
  •   binpy    9 年前

    如果默认 MinLengthValidator 不适合您,我建议您包装一个自定义验证器,如下所示:

    from django.core.validators import ValidationError
    
    def max_length_validator(value):
        if len(value) < 240:
            raise ValidationError("Must be at least 240 chars.")
    
    
    class MyPage(Page):
        introduction = models.TextField(
            blank=False, validators=[max_length_validator])