Preciso armazenar uma quantia em dólares americanos em um campo de um modelo Django. Qual é o melhor tipo de campo de modelo a ser usado? Preciso fazer com que o usuário insira esse valor (com verificação de erro, só quero um número com precisão de centavos), formate-o para saída para usuários em locais diferentes e use-o para calcular outros números.
django
django-models
MikeN
fonte
fonte
Observe que max_digits deve ser> = decimal_places. Esta configuração de exemplo permitiria um valor de até: 999.999,99
Documentos: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
fonte
As outras respostas estão 100% corretas, mas não são muito práticas, pois você ainda terá que gerenciar manualmente a saída, a formatação etc.
Eu sugeriria usar django-money :
Funciona automaticamente a partir de modelos:
Resultado:
Ele tem um back-end poderoso via python-money e é essencialmente um substituto para os campos decimais padrão.
fonte
DecimalField
é mais prático. E acredito que se aplica à maioria das pessoas. Usandodjango-money
conforme destacado, inclua o manuseio de moeda . Portanto, isso é mais para projetos envolvendo transações como sites de comércio eletrônico, gateway de pagamento, moeda digital, banco, etc ....Defina um decimal e retorne um sinal $ antes do valor.
fonte
Deve criar um campo para PostgreSQL como:
Qual é a melhor maneira de armazenar o valor em dólares americanos do PostGreSQL.
Se você precisa de um tipo de campo PostgreSQL "precisão dupla", você precisa fazer no modelo django:
fonte