如何更改 django 中验证器的默认错误消息

How can I change the default error message for a validator in django

我有一个模型字段,它使用验证器来限制最大值。但是错误消息显示 "Ensure this value is less than or equal to 40."。有什么办法可以将其更改为自定义消息吗?

from django.core.validators import MaxValueValidator
class Bucket(models.Model):
    items = models.PositiveIntegerField(validators=[MaxValueValidator(40)])

谢谢

您应该继承 MaxValueValidator 并改为使用它:

class MyMaxValueValidator(MaxValueValidator):
    message = _('Way over %(limit_value)s.')

然后

class Bucket(models.Model):
    items = models.PositiveIntegerField(validators=[MyMaxValueValidator(40)])

编辑:如果您使用的是 Django >= 1.8(截至此答案尚未发布),您可以跳过子类化并按照@catavaran 的建议使用:

class Bucket(models.Model):
    items = models.PositiveIntegerField(validators=[MaxValueValidator(40, _('Way over %(limit_value)s.')])

UPDATE: 此功能将在 django 1.8 中引入。对于以前的版本,您应该使用 @selcuk 的回答中的子类。

将第二个参数添加到 MaxValueValidator 构造函数:

items = models.PositiveIntegerField(validators=[MaxValueValidator(40,
                        "The value should be lesser than %(limit_value)s.")])