models.DecimalField with value 0 shows up as "0E-8" in admin forms by default. Is there a workaround?

1,353 views
Skip to first unread message

Ben Roberts

unread,
Oct 31, 2012, 2:37:26 PM10/31/12
to django...@googlegroups.com
I created a ticket for this, since it really doesn't seem right for a Decimal field to be using E notation in forms, but just for zeros.

We use django admin as a client-facing backend, so we need to make it user friendly. I have a model with a bunch of DecimalFields representing nutritional data.

The fields all look like this:

g_carbs = DecimalField(max_digits=13, decimal_places = 8, null=True, blank=True) 

If the field is left blank, or if a non-zero value is provided, the admin form looks and works great. For example, for a non-blank, non-zero value like 10.5, it displays something like 10.50000000, which is fine.

The problem is that for any 0 values, the form field displays 0E-8 which, although technically correct, is not going to cut it for clients, who are not scientists or engineers for the most part and are unfamiliar with E notation. We're using DecimalFields rather than FloatFields to avoid this type of notation.

I am not using a custom ModelForm or any custom admin tricks. Its just what gets auto-rendered by django admin for that model. 

I'm wondering if there is a work-around to this problem in the mean time.  

Ben Roberts

unread,
Nov 3, 2012, 12:02:51 PM11/3/12
to django...@googlegroups.com
If anyone down the road ends up looking for a solution to this, I worked it out via StackOverflow:

Reply all
Reply to author
Forward
0 new messages