我有一个模型字段,它使用验证器来限制最大值。但是,错误消息显示“确保此值小于或等于40”。有没有办法将其更改为自定义消息?
from django.core.validators import MaxValueValidator
class Bucket(models.Model):
items = models.PositiveIntegerField(validators=[MaxValueValidator(40)])
谢谢
答案 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.")])