這是關於在Django 1.2中實現的Format Localization功能。默認啓用Django格式本地化
爲了使用此功能,您必須將localize=True
參數添加到所有表單域。我試圖在我的應用中實現這個本地化,但問題是我使用Django提供的inlineformset_factory
方法動態創建我的表單,所以我不能簡單地向表單字段添加新參數。
因此,我試圖在所有模型中默認啓用此功能,而無需爲所有字段添加新參數。我創建了一個BaseInlineFormSet子類並對其中的參數進行了硬編碼。
class MyBaseInlineFormSet(BaseInlineFormSet):
def __init__(self, *args, **kwargs):
super(MyBaseInlineFormSet, self).__init__(*args, **kwargs)
for form in self.forms:
for key, field in form.fields.iteritems():
if field.__class__ == forms.DecimalField:
form.fields[key].localize = True
那隻工作了50%。提交時,表單現在正在被Django正確驗證(它接受逗號而不是隻有點),但是這些字段仍然顯示不正確。
我想我可以javascript我的方式擺脫這個問題,但我寧願避免這樣做。
關於如何解決這個問題的任何想法?