Potrzebuję przechowywać kwotę w dolarach amerykańskich w polu modelu Django. Jaki jest najlepszy typ pola modelu, którego należy użyć? Muszę mieć możliwość podania przez użytkownika tej wartości (przy sprawdzaniu błędów, potrzebna jest tylko liczba dokładna do centów), sformatowania jej na potrzeby użytkowników w różnych miejscach i użycia jej do obliczenia innych liczb.Jakie jest najlepsze pole modelu django, które można wykorzystać do reprezentowania kwoty w dolarach amerykańskich?
Odpowiedz
A decimal field jest właściwym wyborem dla wartości waluty .
To będzie wyglądać następująco:
credit = models.DecimalField(max_digits=6, decimal_places=2)
field = models.DecimalField(max_digits=8, decimal_places=2)
Zauważ, że max_digits powinna być> = decimal_places. To ustawienie przykład pozwoliłoby wartość do: 999,999.99
Docs: https://docs.djangoproject.com/en/1.10/ref/models/fields/#decimalfield
Zdefiniuj po przecinku i zwraca znak $ przed wartością.
price = models.DecimalField(max_digits=8, decimal_places=2)
@property
def price(self):
return "$%s" % self.price
Zdajesz sobie sprawę, że właśnie stworzyłem nieskończoną pętlę rekursji w twojej nieruchomości, prawda? –
field = models.DecimalField(max_digits=8, decimal_places=2)
powinno stworzyć pole dla PostgreSQL jak:
"field" numeric(8, 2) NOT NULL
Jaki jest najlepszy sposób dla PostgreSQL przechowywane amerykańskiego dolara kwoty.
Jeśli potrzebujesz typ pola PostgreSQL „podwójnej precyzji”, to trzeba zrobić w modelu django:
field = models.FloatField()
innych odpowiedzi są w 100% rację, ale nie są bardzo praktyczne, jak wciąż masz ręcznie zarządzać wyjście, formatowanie itp
Sugerowałbym użyciu 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,
)
działa automatycznie z szablonów:
{{ somemodel.some_currency }}
wyjściowa:
$123.00
Ma potężny backend za pośrednictwem Python-money i jest to w istocie zastąpienie drop-in dla standardowych pól dziesiętnych.
* (przy sprawdzaniu błędów, chcemy tylko liczby dokładnej do centów), sformatuj ją dla danych wyjściowych dla użytkowników w różnych miejscach i użyj jej do obliczenia innych liczb. * W takich przypadkach użycie 'DecimalField' jest bardziej praktyczne. I uważam, że jest stosowana dla większości ludzi. Użycie 'django-money' podświetlonych, obejmuje obsługę ** Waluta **.A więc bardziej dotyczy to projektu obejmującego transakcje, takie jak strony e-commerce, bramka płatności, cyfrowa waluta, bankowość itp. – Yeo
Twierdzę, że skoro pracują z USD - waluta - bardziej sensowne jest korzystaj z biblioteki obsługi walut, takiej jak django-money (pieniądze-pytony), ponieważ wszystko działa zgodnie z oczekiwaniami i zapewnia przyszłe dostosowania funkcji. Pierwotne pytanie mówi, że wymaga formatowania i obliczeń (jak zacytowałeś), a do tego lepiej użyć biblioteki walut zamiast prostego pola dziesiętnego. –
- 1. javascript - pułap kwoty w dolarach
- 2. Pole modelu w Django
- 3. Paski niestandardowe pole kwoty
- 4. Django Forms: Ukryte pole modelu?
- 5. Jak dodać pole obliczeniowe do modelu Django
- 6. Jakie jest najlepsze miejsce dla klas Pythona w projekcie Django?
- 7. Pole DateTime w modelu formularza Django
- 8. Django Binary lub pole modelu BLOB
- 9. Które biblioteki Java można wykorzystać do wygenerowania pliku KML?
- 10. Pole modelu Django: uporządkowana lista kluczy zagranicznych
- 11. Jak ustawić pole modelu django według nazwy?
- 12. Jakie jest najlepsze środowisko programistyczne gier .NET?
- 13. Utwórz liczby w tablicy, które sumują się do ustawionej kwoty.
- 14. Jakie jest najlepsze wdrożenie AOP w .Net?
- 15. Najlepsze praktyki dotyczące logowania do projektu django
- 16. Unikalne pole w modelu Django dla każdego obcego klucza
- 17. Jakie jest najlepsze miejsce do zgłaszania błędów w ASP.NET MVC?
- 18. Dodawanie do "konstruktora" modelu django
- 19. Jakie jest najlepsze podejście do integracji aplikacji Lotus Notes?
- 20. Jakie jest najlepsze podejście do tworzenia niestandardowego, kanciastego motywu materiałowego?
- 21. Jakie są najważniejsze zapytania dotyczące mediów, które można wykorzystać przy tworzeniu elastycznego, responsywnego projektu?
- 22. Jakie jest najlepsze podejście do generalizowania i agregowania zrzutów XML w języku C#?
- 23. Jak przypisać do atrybutu modelu Django PointField?
- 24. Jakie są najlepsze narzędzia lub wtyczki do generowania kodu Java, które będą używane w środowisku Eclipse?
- 25. Które z zestawień utf8 jest najlepsze?
- 26. Menedżer modelu Django. Gdzie można znaleźć dokumentację?
- 27. Dlaczego potrzebujemy, jakie korzyści wykorzystać mangusta
- 28. Jakie jest najlepsze narzędzie do analizowania plików dziennika?
- 29. Jakie jest najlepsze podejście do tworzenia niestandardowego kontrolera paska kart?
- 30. Jaki jest cel funkcji "dekonstrukcji" modelu Django?
Jeśli nie chcesz reprezentować długu publicznego, w którym to przypadku max_digits musi być> 20 –
decimal_places = 2 niekoniecznie jest poprawne, jeśli potrzebujesz tego do obsługi innych walut. Niektóre waluty mają trzy miejsca dziesiętne, a Bitcoin ma koklusz 8. –
Myślę, że ten przykład jest poprawny prawie we wszystkich walutach. Aby reprezentować waluty jako Bitcoin, myślę, że lepiej jest użyć pola liczby całkowitej, aby zapisać kwotę w satoshis, a następnie pokazać je użytkownikowi końcowemu w reprezentacji, którą chcesz (BTC, mBTC itp.). – jion