Ces*_*ssa 4 python django formatting localization
这是关于Django 1.2中实现的格式本地化功能.
要使用此功能,您必须localize=True向所有表单字段添加参数.我试图在我的应用程序中实现这种本地化,但问题是我通过使用inlineformset_factoryDjango提供的方法动态创建我的表单,所以我不能简单地向表单字段添加新参数.
因此,我尝试在所有模型中默认启用此功能,而无需为所有字段添加新参数.我创建了一个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
Run Code Online (Sandbox Code Playgroud)
那个只有50%.提交时,Django正在正确验证表单(它接受逗号而不是点)但字段仍然显示不正确.
我想我可以通过javascript来解决这个问题,但我更愿意避免这样做.
关于如何解决这个问题的任何想法?
Django 1.2现在已经3岁了.Django 1.6提供了解决困境的好方法:
来自文档:
默认情况下,ModelForm中的字段不会本地化其数据.要为字段启用本地化,可以使用Meta类的localized_fields属性.
>>> from django.forms import ModelForm
>>> from myapp.models import Author
>>> class AuthorForm(ModelForm):
... class Meta:
... model = Author
... localized_fields = ('birth_date',)
Run Code Online (Sandbox Code Playgroud)
如果localized_fields设置为特殊值__all__,则将本地化所有字段
| 归档时间: |
|
| 查看次数: |
1462 次 |
| 最近记录: |