Tôi cũng đã gặp phải vấn đề này và phát hiện ra rằng thực sự mọi thứ đang hoạt động bình thường. Trong Python nếu bạn thực sự xác định một cái gì đó như thế này Decimal("0.0000000000")
bạn sẽ thấy điều này trong bảng điều khiển:
>>> Decimal("0.0000000000")
Decimal('0E-10')
Trong tình huống của tôi, tôi đã chuyển đổi từ SQLite3 phụ trợ cho PostgreSQL cho việc sản xuất. Mọi thứ đều hoạt động tốt trong SQLite, bởi vì nó không hiển thị (hoặc lưu trữ) rõ ràng tất cả các chữ số thập phân. Vì vậy, nếu bạn chèn 0
trong trường số SQLite và sau đó chọn nó, bạn sẽ nhận được 0
.
Nhưng nếu bạn chèn 0
trong PostgreSQL trường số nó sẽ điền số 0 vào phần thập phân và chèn 0.0000000000
. Vì vậy, khi Python đặt điều này ở dạng Thập phân, bạn sẽ thấy Decimal("0E-10")
.
CẬP NHẬT - đã sửa trong Django 1.8