J'ai besoin de stocker un montant en dollars américains dans un champ d'un modèle Django. Quel est le meilleur type de champ de modèle à utiliser ? J'ai besoin de pouvoir demander à l'utilisateur d'entrer cette valeur (avec vérification des erreurs, je ne veux qu'un nombre précis en cents), de la formater pour qu'elle soit transmise aux utilisateurs à différents endroits et de l'utiliser pour calculer d'autres nombres.
Réponses
Trop de publicités?Un champ décimal est le bon choix pour la valeur de la devise.
Il ressemblera à quelque chose comme :
credit = models.DecimalField(max_digits=6, decimal_places=2)
field = models.DecimalField(max_digits=8, decimal_places=2)
Notez que max_digits doit être >= decimal_places. Cet exemple de réglage permettrait une valeur allant jusqu'à : 999,999.99
Documents : https://docs.djangoproject.com/fr/1.10/ref/models/fields/#decimalfield
field = models.DecimalField(max_digits=8, decimal_places=2)
Devrait créer un champ pour PostgreSQL comme :
"field" numeric(8, 2) NOT NULL
Quelle est la meilleure façon pour PostGreSQL stocké montant en dollars américains.
Si vous avez besoin d'un champ PostgreSQL de type "double précision", alors vous devez faire dans le modèle django :
field = models.FloatField()