Wagtail 字段上的自定义验证器

Custom validators on Wagtail fields

我有一个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().

有没有办法在 TextField 上添加 min_length

如果默认 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])