django - validité - valeur du dollar




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

Définissez une décimale et renvoyez un signe $ devant la valeur.

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

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

J'ai besoin de stocker un montant en dollars US dans un champ d'un modèle Django. Quel est le meilleur type de champ de modèle à utiliser? Je dois pouvoir demander à l'utilisateur d'entrer cette valeur (avec une vérification d'erreur, ne vouloir qu'un nombre précis de centimes), la formater pour la sortie aux utilisateurs dans différents endroits, et l'utiliser pour calculer d'autres nombres.


Les autres réponses sont correctes à 100% mais ne sont pas très pratiques car vous devrez toujours gérer manuellement la sortie, le formatage, etc.

Je suggère d'utiliser django-money :

from djmoney.models.fields import MoneyField
from django.db import models


def SomeModel(models.Model):
    some_currency = MoneyField(
        decimal_places=2,
        default=0,
        default_currency='USD',
        max_digits=11,
    )

Fonctionne automatiquement à partir des modèles:

{{ somemodel.some_currency }}

Sortie:

$123.00

Il a un backend puissant via python-money et c'est essentiellement un remplacement direct pour les champs décimaux standards.


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

Devrait créer un champ pour PostgreSQL comme:

 "field" numeric(8, 2) NOT NULL

Quel est le meilleur moyen pour PostGreSQL stocké en dollars américains.

Si vous avez besoin d'un champ PostgreSQL de type "double precision", alors vous devez faire dans le modèle django:

field = models.FloatField()





django-models