Skip to main content

An easy MoneyField for Django.

Project description

An easy to use money field for Django. Handles type conversions and arithmetic seamlessly.


Python 2.7 and 3.3+, Django 1.6+.


pip install django-easymoney


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


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

# 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 = '...'
    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.

Files for django-easymoney, version 0.7.2
Filename, size File type Python version Upload date Hashes
Filename, size django-easymoney-0.7.2.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page