This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

An easy MoneyField for Django.

Project Description

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
Release History

Release History

This version
History Node

0.7.2

History Node

0.7.1

History Node

0.7

History Node

0.6

History Node

0.5

History Node

0.4.1

History Node

0.4

History Node

0.3.6

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.2

History Node

0.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-easymoney-0.7.2.tar.gz (6.0 kB) Copy SHA256 Checksum SHA256 Source Apr 19, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting