147 votes

Quel est le meilleur champ de modèle django à utiliser pour représenter un montant en dollars américains ?

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.

259voto

simplyharsh Points 11663

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)

46voto

Lee Hinde Points 111
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

8voto

uha1 Points 62

Définissez un nombre décimal et retournez un signe $ devant la valeur.

    price = models.DecimalField(max_digits=8, decimal_places=2)

    @property
    def price_display(self):
        return "$%s" % self.price

2voto

herohat Points 11
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()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X