Eu também me deparei com esse problema e descobri que, na verdade, tudo está funcionando corretamente. Em Python, se você realmente definir algo assim
Decimal("0.0000000000")
você verá isso no console:>>> Decimal("0.0000000000")
Decimal('0E-10')
Na minha situação eu estava convertendo do SQLite3 backend para PostgreSQL para produção. Tudo estava funcionando bem no SQLite, porque ele não mostra (ou armazena) explicitamente todos os dígitos decimais. Então, se você inserir
0
em um campo de número SQLite e, em seguida, selecione-o, você obterá 0
. Mas se você inserir
0
em um PostgreSQL campo numérico ele fará um preenchimento zero no decimal e inserirá 0.0000000000
. Então, quando o Python colocar isso em um Decimal, você verá Decimal("0E-10")
. ATUALIZAÇÃO - corrigida no Django 1.8