Také jsem narazil na tento problém a zjistil, že vlastně všechno funguje správně. Pokud v Pythonu skutečně definujete něco takového Decimal("0.0000000000")
v konzole uvidíte toto:
>>> Decimal("0.0000000000")
Decimal('0E-10')
V mé situaci jsem konvertoval z SQLite3 backend do PostgreSQL pro výrobu. V SQLite vše fungovalo dobře, protože explicitně nezobrazuje (nebo neukládá) všechny desetinné číslice. Pokud tedy vložíte 0
v poli čísla SQLite a poté jej vyberte, získáte 0
.
Ale pokud vložíte 0
v PostgreSQL číselné pole provede nulové vyplnění desetinného místa a vloží 0.0000000000
. Takže když to Python vloží do desítkové soustavy, uvidíte Decimal("0E-10")
.
AKTUALIZACE – opraveno v Django 1.8