我有一个使用验证器来限制最大值的模型字段。但是错误消息说“确保此值小于或等于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.')])

09-08 00:06