django-money
Adds support for using money and currency fields in django models and forms. Uses py-moneyed as the money implementation.
What it is and what it does
django-money extends Django with native Money and currency field types for models and forms. It wraps py-moneyed to provide a standard Money design pattern, currency definitions for all currencies in circulation, and proper formatting with correct currency signs. You define a field in your model with a maximum number of digits and decimal places, optionally specifying a default currency; the field stores both the numeric amount and the currency code separately in the database, and you can query, filter, and validate money amounts across different currencies.
The package integrates with Django's admin interface to display money fields correctly and supports callable defaults to avoid unnecessary migrations when configuration changes. It includes validators for numeric ranges, single currency amounts, or per-currency limits, and handles nullable money fields. Forms built from models with money fields automatically split into two input fields—one for amount and one for currency—making it straightforward to construct form data in tests or programmatically.
Use it for:
- Store and query account balances, prices, or financial amounts in Django models with automatic currency tracking.
- Build multi-currency e-commerce or invoicing systems where different records may use different currencies.
- Validate monetary inputs with per-currency min/max constraints in forms and model validation.
- Display money values in the Django admin with correct currency symbols and formatting.
- Implement accounting applications requiring strict decimal precision and currency separation.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds Money and currency field types to Django models and forms, handling monetary values with proper currency support through py-moneyed.
No—the repository is archived and abandoned as of June 2026, with no active maintenance. While the package is stable and has low install friction, choosing an abandoned financial library introduces risk: no fixes for Django/Python compatibility issues, no security patches, and no support for future ecosystem changes. For new projects, seek an actively maintained alternative; for existing projects, consider migration planning.
Install
django-money on PyPI
pip
pip install django-moneyuv
uv add django-moneypoetry
poetry add django-moneyInstalling django-money
Before you install
Low friction install with just two runtime dependencies. However, the repository is archived and marked abandoned as of the last commit on 2026-06-15, meaning no active maintenance or bug fixes should be expected going forward.
License in practice
Licensed under BSD (permissive), so you can use, modify, and distribute the package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install django-money
# In settings.py
INSTALLED_APPS = [..., 'django-money', ...]
# In models.py
from django.db import models
class BankAccount(models.Model):
balance = MoneyField(max_digits=14, decimal_places=2, default_currency='USD')
Requires Django 4.2+ and Python 3.10+; the repository is archived and no longer maintained.
Verify before relying
- Whether the abandoned status affects long-term compatibility with future Django/Python releases.
- Whether there are known issues or limitations not documented in the excerpt.
- Community fork or maintained alternative availability.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — Django, py-moneyed |
| Maintenance | abandoned — 68 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 837,834/month — #4,930 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_money-3.6.1-py3-none-any.whl
Keywords: django, money, py-money
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
py-moneyedProvides Money and Currency classes for…
permissive · top 5,000 on PyPI
py-moneyRepresents monetary amounts with currency-aware…
permissive · top 15,000 on PyPI
ccyProvides a dictionary of currency objects with…
permissive · top 15,000 on PyPI
pricesHandles monetary amounts with currency…
permissive · top 15,000 on PyPI
CurrencyConverterConverts currency amounts using historical…
unclear · top 15,000 on PyPI
currency-symbolsMaps ISO 4217 currency codes to their symbols…
permissive · top 5,000 on PyPI
mt-940Parses MT940 bank statement files into fully…
permissive · top 15,000 on PyPI
django-add-default-valueProvides a Django migration operation to set…
permissive · top 15,000 on PyPI
django-colorfieldAdds a color field to Django models with an…
permissive · top 5,000 on PyPI
forex-pythonFetches current and historical foreign exchange…
permissive · top 15,000 on PyPI