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