Necesito almacenar una cantidad de dólares estadounidenses en un campo de un modelo Django. ¿Cuál es el mejor tipo de campo de modelo para usar? Necesito poder hacer que el usuario ingrese este valor (con verificación de errores, solo quiero un número con una precisión de centavos), formatearlo para enviarlo a usuarios en diferentes lugares y usarlo para calcular otros números.
django
django-models
MikeN
fuente
fuente
Tenga en cuenta que max_digits debe ser> = decimal_places. Esta configuración de ejemplo permitiría un valor de hasta: 999,999.99
Documentos: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
fuente
Las otras respuestas son 100% correctas, pero no son muy prácticas, ya que aún tendrá que administrar manualmente la salida, el formateo, etc.
Sugeriría usar django-money :
Funciona automáticamente a partir de plantillas:
Salida:
Tiene un poderoso backend a través de python-money y es esencialmente un reemplazo directo de los campos decimales estándar.
fuente
DecimalField
es más práctico. Y creo que se aplica a la mayoría de las personas. Utilizandodjango-money
como resaltaron, incluya Manejo de moneda . Así que esto es más para proyectos que involucran transacciones como sitios de comercio electrónico, pasarela de pago, moneda digital, banca, etc ....Defina un decimal y devuelva un signo $ delante del valor.
fuente
Debería crear un campo para PostgreSQL como:
Cuál es la mejor manera para PostGreSQL almacenado en dólares estadounidenses.
Si necesita un tipo de campo de PostgreSQL "doble precisión", entonces debe hacerlo en el modelo django:
fuente