我正在尝试在django表单中本地化模型浮点字段。
这种方式有效:
super(....)
self.fields["field_name"] = forms.FloatField(localize=True)
但是我不想定义新的表单字段,而是想将本地化添加到现有的模型字段中。这种方式不起作用:
super(....)
self.fields['field_name'].localize = True
有谁知道我的方法出错了?
谢谢, 纳斯
答案 0 :(得分:3)
问题是表单字段在实例化时会执行各种初始化,并且在此之后设置localize
属性不会重新运行该初始化。请参阅the code。
您可以通过在窗口小部件上另外设置is_localized
属性来获得您想要的大部分内容:
self.fields['field_name'].localize = True
self.fields['field_name'].widget.is_localized = True
但是在这一点上,你可能最好还是重新宣布这个领域。
答案 1 :(得分:1)
我的方法是:
settings.py
DECIMAL_SEPARATOR = ','
USE_THOUSAND_SEPARATOR = True
表格 __ init __ 功能
def __init__(self, *args, **kwargs):
super(YourForm, self).__init__(*args, **kwargs)
self.fields['field'].localize = True
self.fields['field'].widget.is_localized = True