Muszę przechowywać kwotę w dolarach amerykańskich w polu modelu Django. Jaki jest najlepszy typ pola modelu do użycia? Muszę mieć możliwość wprowadzenia tej wartości przez użytkownika (ze sprawdzaniem błędów, chcę, aby liczba była dokładna tylko do centów), sformatowania jej w celu wyświetlenia użytkownikom w różnych miejscach i użycia jej do obliczenia innych liczb.
django
django-models
MikeN
źródło
źródło
Zauważ, że max_digits powinno być> = decimal_places. To przykładowe ustawienie dopuszcza wartość do: 999 999,99
Dokumenty: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
źródło
Pozostałe odpowiedzi są w 100% poprawne, ale nie są zbyt praktyczne, ponieważ nadal będziesz musiał ręcznie zarządzać wyjściem, formatowaniem itp.
Sugerowałbym użycie django-money :
Działa automatycznie z szablonów:
Wynik:
Ma potężne zaplecze za pośrednictwem Python-Money i jest zasadniczo zamiennikiem standardowych pól dziesiętnych.
źródło
DecimalField
jest bardziej praktyczne. Uważam, że jest stosowany u większości ludzi. Używając,django-money
jak podkreślili, uwzględnij obsługę walut . Jest to więc bardziej dla projektów obejmujących transakcje, takie jak witryny e-commerce, bramki płatności, waluta cyfrowa, bankowość itp.Zdefiniuj ułamek dziesiętny i zwróć znak $ przed wartością.
źródło
Powinien utworzyć pole dla PostgreSQL takie jak:
Jaki jest najlepszy sposób na przechowywanie w PostGreSQL kwoty w dolarach amerykańskich.
Jeśli potrzebujesz pola PostgreSQL typu „podwójna precyzja”, musisz to zrobić w modelu django:
źródło