Verileri Django aracılığıyla bir PostgreSQL arka ucuna kaydediyorum. Modellerimdeki alanların birçoğu, DecimalFields'ın, veritabanı arka ucundaki sayısal sütunlara karşılık gelen, keyfi olarak yüksek maks_digitlere ve ondalık_sayılara ayarlanmış olmasıdır. Her sütundaki veriler, no'lu no'lu bir tanıma sahip olmayan bir hassaslığa (veya ondalık basamak sayısına) sahiptir ve belirli bir sütundaki her bir verimin aynı hassasiyete sahip olması gerekmez. tuşları veritabanı sütun isimleriDjango DecimalField ve PostgreSql Sayısal alanıyla çıktı hassaslığını koruma
{'dist': Decimal("94.3"), 'dist_e': Decimal("1.2")}
{'dist': Decimal("117"), 'dist_e': Decimal("4")}
:
Örneğin, bir modele argümanlar gibi görünebilir.
çıkışı üzerine, ben korumak ve onlar okunmuştur hangi hassasiyetle bu verileri yeniden görüntülemek gerekir. Diğer bir deyişle, veritabanı sorgulanır sonra, görüntülenen veriler okunmuştur ki verileri gibi tam olarak bakmak gerekir ondalıklarda hiçbir ek veya eksik iz 0 ile birlikte. Ancak, bir django kabuğunda veya yönetici arabiriminde sorgulandığında, tüm DecimalField verileri çok sayıda 0'la birlikte gelir.
Ben hassas (2 ondalık basamak) hem bilinen ve belirli bir sütundaki tüm veriler için aynıdır para değerleri için cevap benzer sorular gördük. Bununla birlikte, doğruluk aynı değilse ve önceden bilinmediğinde, Django'daki Ondalık değerler ve PostgreSQL'deki sayısal değerler tarafından temsil edilen kesin kesinliği nasıl en iyi şekilde koruyabiliriz?
DÜZENLEME:
bilgilerin Muhtemelen ek yararlı parçası
: Veri dbshell bir Django kaydedilmiş olduğu tablo görüntüleme, bir çok arka 0 en da vardır. Python Ondalık değeri, PostgreSQL arka ucuna kaydedildikten sonra, models.py dosyasında belirtilen maksimum hassasiyet değerine dönüştürülür.
Django numaralarınızı karıştırıyorsa, muhtemelen DecimalField alt sınıfından veya tamamen sıfırdan başlayarak özel bir ModelField yazmanız gerekecektir: -/ – Dave
Evet. Ne yazık ki, bu sorunun kısa cevabı, Django'nun (henüz) belirsiz kesinlikteki PostgreSQL sayısal sütununu desteklemediği şeklindedir. Bunun için bir kaç iş aklım var, ve bunu formüle etmek için zamanım olduğu anda, onlara yorum/öneri için başka bir soru soracağım. – krosbonz