问题描述
在我的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')” 的原因。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)