Skip to main content

simple currency handling for djagngo

Project description

Overview

Simple django app that handles basic currency handling, formatting and manual addition of exchange rates that can be used to easy convert from one currency to another

Example usage

from currency.models import Currency, ExchangeRate, Money

usd = Currency.objects.create(code='USD', short_name=u'$')
eur = Currency.objects.create(code='EUR', short_name=u'€')

ExchangeRate.objects.create(base_currency=usd, foreign_currency=eur, rate=1/1.3)

print(usd.get_rate(eur))  # Decimal('0.76923')
print(eur.get_rate(usd))  # Decimal('1.30000')

my_money = Money(1531, 'USD')
print(my_money)  # 1531.00000USD
my_money += Money(23, 'USD')
print(my_money)  # 1554.00000USD
print(my_money.convert_to('EUR'))  # 1195.38342EUR

# be careful with conversions. Errors accumulate with each conversion. Example:
print(my_money.convert_to('EUR').convert_to('USD'))  # 1553.99845USD


# indirect rates through rates of default currency (USD) are available too
hrn = Currency.objects.create(code='UAH', short_name='hrn')
rub = Currency.objects.create(code='RUB', short_name='rub')

ExchangeRate.objects.create(
    base_currency=default_currency, foreign_currency=hrn,
    rate='0.125')
# get stored value:
rate1 = ExchangeRate.objects.get(
    base_currency=default_currency, foreign_currency=hrn)

ExchangeRate.objects.create(
    base_currency=default_currency, foreign_currency=rub,
    rate='0.03125')
# get stored value:
rate2 = ExchangeRate.objects.get(
    base_currency=default_currency, foreign_currency=rub)

self.assertEqual(hrn.get_rate(rub), rate1.rate / rate2.rate)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-currency-0.0.8.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

django-currency-0.0.8.linux-x86_64.tar.gz (16.0 kB view details)

Uploaded Source

File details

Details for the file django-currency-0.0.8.tar.gz.

File metadata

File hashes

Hashes for django-currency-0.0.8.tar.gz
Algorithm Hash digest
SHA256 4ca7003568a02b42ea83f5f0020b070371000b6fa3fc0b69de573d70fa3eb834
MD5 8a201da1ec0d786f3a23ae3b101034bb
BLAKE2b-256 807a46f7d6fee35ba6805e387ad1278161a431dc370c4a3266b7e295f26fba1e

See more details on using hashes here.

File details

Details for the file django-currency-0.0.8.linux-x86_64.tar.gz.

File metadata

File hashes

Hashes for django-currency-0.0.8.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 2e22a2ba8b56197122cdd284836488b68d5c9871384e446aa0ede8abd85bdf8c
MD5 2c72d6efb5874a2a4c98714331ac0cf3
BLAKE2b-256 62e318690d3e7dc1cf0bb2805d77913f33db99321e9985535b48846eaf026d40

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page