Djangoモデルのフィールドに米ドルの金額を格納する必要があります。使用するのに最適なモデルフィールドタイプは何ですか?ユーザーにこの値を入力させる必要があります(エラーチェック、セント単位の正確な数値のみが必要)、さまざまな場所のユーザーへの出力用にフォーマットし、それを使用して他の数値を計算します。
field = models.DecimalField(max_digits=8, decimal_places=2)
Max_digitsは> = decimal_placesである必要があることに注意してください。この設定例では、999,999.99までの値を許可します
ドキュメント: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
他の答えは100%正しいですが、出力、フォーマットなどを手動で管理する必要があるため、あまり実用的ではありません。
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,
)
テンプレートから自動的に動作します:
{{ somemodel.some_currency }}
出力:
$123.00
Python-moneyを介した強力なバックエンドがあり、基本的には標準の10進数フィールドのドロップイン置換です。
小数を定義し、値の前に$記号を返します。
price = models.DecimalField(max_digits=8, decimal_places=2)
@property
def price_display(self):
return "$%s" % self.price
field = models.DecimalField(max_digits=8, decimal_places=2)
次のようなPostgreSQLのフィールドを作成する必要があります。
"field" numeric(8, 2) NOT NULL
これは、PostGreSQLに保存された米ドル金額の最良の方法です。
PostgreSQLのフィールドタイプ「倍精度」が必要な場合は、Django model:
field = models.FloatField()