【问题标题】:Custom validators on Wagtail fieldsWagtail 字段上的自定义验证器
【发布时间】:2017-09-05 22:57:31
【问题描述】:

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

【问题讨论】:

  • validators=MinLengthValidator(240) 怎么样没有message
  • 我收到了同样的错误。
  • 带参数:min_length=240
  • 我也试过了,得到一个错误“unexpected argument”。
  • 您是否尝试过创建自定义验证器?

标签: django django-forms wagtail


【解决方案1】:

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

【讨论】:

  • 我使用了错误的验证器MinValueValidatorMinLengthValidator 工作得很好。感谢您的帮助
猜你喜欢
  • 2014-03-04
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多