这是关于在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我的方式摆脱这个问题,但我宁愿避免这样做。
关于如何解决这个问题的任何想法?