在我的Django应用中,我正在其中一个模型中使用PositiveSmallIntegerField
,其中该字段的最小值已指定为:
trc_frequency = models.PositiveSmallIntegerField(default=1, validators=[MinValueValidator(1)], ...)
现在发生的是,当以小于1的值(零或负值)形式输入值时,系统显示的错误消息实际上是:
确保此值大于或等于 0 。
鉴于此,因为为该字段定义的最小值为“ 1”(一个),所以我希望该消息通知用户该字段的最小允许值为 1(一个),
效果:
确保此值大于或等于 1 。
到目前为止,我已经尝试过:
trc_frequency = models.PositiveSmallIntegerField(default=1, validators=[MinValueValidator(1, _('Must ensure this value is greater than or equal to %(limit_value)s.'))],...)
但是仍然获得错误消息中指定的最小值 1(零)。更令人惊讶的是,消息文本也没有从确保该值是... 到必须确保该值是.. 。为什么?
我要去哪里了
forms.py
class CreateTrcFreqForm(forms.ModelForm):
class Meta:
model = TrcFrequency
fields = ('aud_freq_id', 'short_text', 'trc_frequency')
widgets = {
'freq_id': forms.TextInput(attrs={'style': 'width:40px; text-align:left'}),
'short_text': forms.TextInput(attrs={'style': 'width:300px; text-align:left'}),
'trc_frequency': forms.TextInput(attrs={'style': 'width:40px; text-align:right'}),
}
## error_messages = {
## 'trc_frequency': {
## 'min_value': _('Frequency value must be >= 1') # %(limit_value)s')
## }
## }
error_messages
段已被注释,以在models.py本身中测试验证。但是,即使在表单验证中,使用%(limit_value)s')
也会得到“ 0(零)” 和 NOT 1(一个)。您可以看到硬编码值“ ...必须为> = 1')” 的原因。