program story

미국 달러 금액을 나타내는 데 사용하는 가장 좋은 장고 모델 필드는 무엇입니까?

inputbox 2020. 9. 18. 08:09
반응형

미국 달러 금액을 나타내는 데 사용하는 가장 좋은 장고 모델 필드는 무엇입니까?


Django 모델의 필드에 US $ 달러 금액을 저장해야합니다. 사용하기에 가장 좋은 모델 필드 유형은 무엇입니까? 사용자가이 값을 입력하고 (오류 검사를 통해 센트 단위의 정확한 숫자 만 원함) 다른 위치에있는 사용자에게 출력 할 수 있도록 형식을 지정하고 다른 숫자를 계산하는 데 사용할 수 있어야합니다.


진수 필드는 통화 값에 대한 최적의 선택이 될 것입니다.

다음과 같이 보일 것입니다.

credit = models.DecimalField(max_digits=6, decimal_places=2)

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를 통한 강력한 백엔드가 있으며 기본적으로 표준 십진수 필드를 대체합니다.


소수점을 정의하고 값 앞에 $ 기호를 반환합니다.

    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 모델에서 수행해야합니다.

field = models.FloatField()

참고 URL : https://stackoverflow.com/questions/1139393/what-is-the-best-django-model-field-to-use-to-represent-a-us-dollar-amount

반응형