Django Money
django-money предоставляет поля для работы с денежными суммами и валютами в Django.
Установка
Настройка
Использование в моделях
Работа с данными
1from moneyed import Money
2
3# Создание объекта
4product = Product.objects.create(
5 name="Laptop",
6 price=Money(1000, 'USD')
7)
8
9# Операции с валютами
10product.price.amount # 1000
11product.price.currency # 'USD'
12
13# Фильтрация
14expensive = Product.objects.filter(price__gt=Money(500, 'USD'))
15
16# Арифметические операции
17new_price = product.price * 1.1 # +10%
18discount = product.price * 0.8 # -20%
Настройка валют
1# settings.py
2CURRENCIES = ('USD', 'EUR', 'RUB')
3
4# Множественные валюты
5class MultiCurrencyProduct(models.Model):
6 name = models.CharField(max_length=100)
7 price_usd = MoneyField(max_digits=14, decimal_places=2, default_currency='USD')
8 price_eur = MoneyField(max_digits=14, decimal_places=2, default_currency='EUR')
FAQ
Q: Как конвертировать валюты?
A: Используй сторонние сервисы или django-money с exchange rates.
Q: Можно ли использовать разные валюты?
A: Да, создай несколько полей для разных валют.