Ich muss einen US-Dollar-Betrag in einem Feld eines Django-Modells speichern. Was ist der beste Modellfeldtyp? Ich muss in der Lage sein, den Benutzer diesen Wert eingeben zu lassen (bei Fehlerprüfung möchte er nur eine auf Cent genaue Zahl), ihn für die Ausgabe an Benutzer an verschiedenen Orten zu formatieren und ihn zur Berechnung anderer Zahlen zu verwenden.
django
django-models
MikeN
quelle
quelle
Beachten Sie, dass max_digits> = decimal_places sein sollte. Diese Beispieleinstellung würde einen Wert bis zu: 999.999,99 ermöglichen
Dokumente: https://docs.djangoproject.com/de/1.10/ref/models/fields/#decimalfield
quelle
Die anderen Antworten sind zu 100% richtig, aber nicht sehr praktisch, da Sie die Ausgabe, Formatierung usw. noch manuell verwalten müssen.
Ich würde vorschlagen, Django-Geld zu verwenden :
Funktioniert automatisch aus Vorlagen:
Ausgabe:
Es hat ein leistungsfähiges Backend über Python-Money und ist im Wesentlichen ein Ersatz für Standard-Dezimalfelder.
quelle
DecimalField
praktischer. Und ich glaube, es wird für die meisten Menschen angewendet. Verwendendjango-money
Sie, wie hervorgehoben, die Währungsbehandlung . Dies ist also eher für Projekte mit Transaktionen wie E-Commerce-Websites, Zahlungsgateway, digitaler Währung, Bankgeschäften usw.Definieren Sie eine Dezimalstelle und geben Sie ein $ -Zeichen vor dem Wert zurück.
quelle
Sollte ein Feld für PostgreSQL erstellen wie:
Welches ist der beste Weg für PostGreSQL gespeicherten US-Dollar-Betrag.
Wenn Sie einen PostgreSQL-Feldtyp "doppelte Genauigkeit" benötigen, müssen Sie dies im Django-Modell tun:
quelle