In django 1.11 this code works. from django.forms.fields import DecimalField >>> DecimalField(max_digits=8, decimal_places=7).clean('0') Decimal('0') >>> DecimalField(max_digits=8, decimal_places=7).clean('0.0') Decimal('0.0') >>> DecimalField(max_digits=8, decimal_places=7).clean('0E+1') Decimal('0E+1')
But in django 2.0.13 we have >>> DecimalField(max_digits=8, decimal_places=7).clean('0E+1') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/amokaddim/e/fh/lib/python3.8/site-packages/django/forms/fields.py", line 150, in clean self.run_validators(value) File "/Users/amokaddim/e/fh/lib/python3.8/site-packages/django/forms/fields.py", line 141, in run_validators raise ValidationError(errors) django.core.exceptions.ValidationError: <exception str() failed> This was introduced in https://github.com/django/django/commit/7c6590af5f199c9ede970758877b5c1eb7e9b3a6#diff-d9609d8dc8482b30eac30df16213cba134562949fd62c97573927b89e880f85b I have two questions, 1. Is there any way I can prevent this validation error from happening in Django 2.0? Any flag or option that will prevent this? 2. We are upgrading Django to the latest. Will it be solved in the later version? Now I have a override of the to_python method. It just calls DecimalField.normalize(). But I am not sure if this is the right way to do it. -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/eb5f4df2-e29d-4c2a-a334-99bcfa1ece50n%40googlegroups.com.