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

时间:2015-02-12 13:39:24

标签: django validation

我有一个模型字段,它使用验证器来限制最大值。但是,错误消息显示“确保此值小于或等于40”。有没有办法将其更改为自定义消息?

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

谢谢

2 个答案:

答案 0 :(得分:3)

你应该继承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.')])

答案 1 :(得分:2)

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

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

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