sql >> Databáze >  >> RDS >> PostgreSQL

DecimalField Převede nulu na 0E-10

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




  1. Proč toto :id v Rails nefunguje s Postgresql, ale funguje s MySQL?

  2. Výkon MySQL:Jedna tabulka nebo více tabulek

  3. MySQL, Rails ActiveRecord seskupení data a časových pásem

  4. Získání upravených dat o průchodu stromu předobjednávky do pole