Frage

EDIT !!! -. Das Gießen des Wertes in einen String scheint gut zu funktionieren, wenn ich einen erstellen neue Objekt, aber wenn ich versuche, ein bestehendes Objekt zu bearbeiten, es ist es nicht zulassen, dass

So habe ich ein Dezimalfeld in einem meiner Modelle von Decimal (3,2)

Wenn ich abfragen, bis all diese Objekte und versuche, dieses Feld zu setzen:

fieldName = 0.85

oder

fieldName = .85

Es wird eine hissy werfen, "Can not float zu DecimalField konvertieren, versuchen Konvertierung in einen String ersten" ...

Also ich:

fieldName = str(0.85)

gleiche Fehler.

Ich habe sogar versucht:

fieldName = "0.85"

Die gleiche Fehler. Bin ich in eine Art Rahmen Bug läuft hier, oder was? Beachten Sie, dass, wenn ich in Django Admin tatsächlich gehen und die Objekte manuell bearbeiten, es funktioniert gut.

Ich bin mit Django 1.1 auf Python 2.6

War es hilfreich?

Lösung

from decimal import Decimal
object.fieldName = Decimal("0.85")

oder

f = 0.85
object.fieldName = Decimal(str(f))

Andere Tipps

Die Django DecimalField ist“... dargestellt durch ein in Python Decimal Instanz.“ Sie könnten versuchen:

>>> obj.fieldName = Decimal("0.85")

Verhalten kann sich auch auf dem Datenbank-Backend abhängig Sie verwenden. Mit SQLite, bin ich in der Lage String-Werte DecimalFields in neuen und bestehenden Objekten ohne Fehler zu vergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top