Аз също се сблъсках с този проблем и разбрах, че всъщност всичко работи както трябва. В Python, ако действително дефинирате нещо като това Decimal("0.0000000000")
ще видите това в конзолата:
>>> Decimal("0.0000000000")
Decimal('0E-10')
В моята ситуация конвертирах от SQLite3 бекенд към PostgreSQL за производство. Всичко работеше добре в SQLite, защото не показва изрично (или съхранява) всички десетични цифри. Така че, ако вмъкнете 0
в числово поле на SQLite и след това го изберете, ще получите 0
.
Но ако вмъкнете 0
в PostgreSQL числово поле, то ще направи нулево попълване на десетичната запетая и ще вмъкне 0.0000000000
. Така че, когато Python постави това в Decimal, ще видите Decimal("0E-10")
.
АКТУАЛИЗАЦИЯ - коригирана в Django 1.8