An easy to use money field for Django. Handles type conversions and arithmetic seamlessly.
Requirements
Python 2.7 and 3.3+, Django 1.6+.
Installation
pip install django-easymoney
Overview
from django.db import models
from easymoney import MoneyField
class MyModel(models.Model):
price = MoneyField(default=3.14)
other_price = MoneyField(default=1)
obj = MyModel()
print obj.price # -> $3.14
# Money arithmetic
obj.price + obj.other_price # $4.14
# Mix with ints and floats
obj.price + 1 # $4.14
obj.price + 0.2 # $3.34
# No partial cents or crazy floats
obj.price / 3 # $1.05
Settings
A primary use of easymoney is global currency defined in settings with global formatting and precision. Here is how you do that:
# These are default settings, code and locales refer to ones used in babel library
CURRENCY_CODE = 'USD'
CURRENCY_LOCALE = 'en_US'
CURRENCY_DECIMAL_PLACES = 2
# This is optional, for cases when you want to use some fake currency
CURRENCY_FORMAT = '# points'
Several currencies
One money field can’t store different currencies, however, you can create different money classes and model fields for them:
from easymoney import Money, MoneyField
class GameMoney(Money):
# CODE = '...'
# LOCALE = '...'
DECIMAL_PLACES = 0
FORMAT = '# points'
class GameMoneyField(MoneyField):
MONEY_CLASS = GameMoney
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-easymoney-0.7.2.tar.gz.
File metadata
- Download URL: django-easymoney-0.7.2.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7654652f1ab56d08e19fc29f1e01cf525261a5b10c61f03973ec85b029e66b54
|
|
| MD5 |
696505830f816b60231eb71fc30c6ee1
|
|
| BLAKE2b-256 |
a69e78ba506e396fa3da4524295c39247542331bcd1926b49074db410f7b98ad
|