This might be handy in countries where decimals are entered with a comma separating the decimal places from the integer part (for instance in Germany). It lets user enter and displays all decimals with a comma separator.
I ran into this problem and couldn't find a clean internationalized way of doing it... but newforms makes it so easy to roll your own. Hope it helps someone.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
from django import newforms as forms from django.utils.encoding import smart_str class CommaWidget(forms.widgets.TextInput): def render(self, name, value, attrs=None): return super(CommaWidget, self).render(name, smart_str(value).replace('.', ',')) class CommaDecimalField(forms.DecimalField): """ Extension to DecimalField that allows comma-separated Decimals to be entered and displayed """ widget = CommaWidget def clean(self, value): value = smart_str(value).replace(',', '.') return super(CommaDecimalField, self).clean(value)
More like this
- Serializer factory with Django Rest Framework by julio 5 months, 2 weeks ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 6 months, 1 week ago
- Help text hyperlinks by sa2812 7 months ago
- Stuff by NixonDash 9 months, 1 week ago
- Add custom fields to the built-in Group model by jmoppel 11 months, 1 week ago