Мне нужно сохранить сумму в долларах США в поле модели Django. Какой тип поля модели лучше всего использовать? Мне нужно, чтобы пользователь вводил это значение (с проверкой ошибок, нужно только число с точностью до центов), форматировал его для вывода пользователям в разных местах и использовал его для вычисления других чисел.
django
django-models
MikeN
источник
источник
Обратите внимание, что max_digits должно быть> = decimal_places. Этот пример настройки допускает значение до: 999 999,99.
Документы: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
источник
Другие ответы на 100% верны, но не очень практичны, так как вам все равно придется вручную управлять выводом, форматированием и т. Д.
Я бы предложил использовать django-money :
Работает автоматически из шаблонов:
Вывод:
Он имеет мощный бэкэнд через python-money и, по сути, заменяет стандартные десятичные поля.
источник
DecimalField
более практично. И я считаю, что это применимо к большинству людей. Используя,django-money
как они выделены, включить обработку валюты . Так что это больше для проекта, включающего транзакции, такие как сайты электронной коммерции, платежный шлюз, цифровая валюта, банковское дело и т. Д.Определите десятичную дробь и верните знак $ перед значением.
источник
Следует создать поле для PostgreSQL, например:
Это лучший способ для PostGreSQL хранить сумму в долларах США.
Если вам нужен тип поля PostgreSQL «двойная точность», то вам нужно сделать в модели django:
источник