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)
Comments
Nice. We should band together and make an extended grab-bag of formfields that people would find helpful.
#
Good idea. Who's up for programming a djangofields.org-site? ;-)
Also, there's a small bug in this widget. Line 6 has to read
return super(CommaWidget, self).render(name, smart_str(value).replace('.', ','), attrs)
Sorry about that.
#
How about None values, when null=True in model?
#