【发布时间】:2010-08-08 06:02:10
【问题描述】:
这是关于在 Django 1.2 中实现的Format Localization 功能。
要使用此功能,您必须在所有表单字段中添加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 来解决这个问题,但我更愿意避免这样做。
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: python django localization formatting