如何更改 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.")])
我有一个模型字段,它使用验证器来限制最大值。但是错误消息显示 "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.")])