我在 Django 中有以下表格:
class MyForm(forms.ModelForm):
val = forms.DecimalField(localize=True)
class Meta:
model = MyModel
使用以下模型:
class MyModel(models.Model):
val = models.DecimalField("Betrag", max_digits=11, decimal_places=2)
我的 settings.py 包含:
LANGUAGE_CODE = 'de-de'
USE_I18N = True
USE_L10N = True
DECIMAL_SEPARATOR=','
当以以下方式评估表单时,我收到错误:
form = MyForm({'val':'10,5'})
form['val'].errors
# [u'Enter a number.']
form['val'].value()
# '10,5'
当然,如果我使用“。”,我不会收到任何验证错误。作为小数分隔符。
- 有没有办法手动显示/设置表单的“值”字段的小数点分隔符?
- 如何全面了解我的语言环境设置?
- 有什么方法可以即时更改区域设置?
* 编辑 * : 我试图添加到 MyForm:
def __init__(self,*args,**kwargs):
super(MyForm,self).__init__(*args,**kwargs)
self.fields['val'].localize=True
if __debug__:
print self.fields['val'].localize
print ("Separator: "+settings.DECIMAL_SEPARATOR)
print ("Language: " +settings.LANGUAGE_CODE)
执行时我得到:
#True
#Separator: ,
#Language: de-de