django-phonenumbers
Phone number field for Django admin
What it is and what it does
django-phonenumbers is a Django app that adds a PhoneNumberField for models and forms, allowing you to store phone numbers with region-specific validation and formatting. It integrates with Django admin to provide a dedicated phone input widget and uses configurable regex patterns and format strings to display numbers according to regional conventions. The package stores phone numbers as objects with country code, region code, and number components, and provides template filters and tags to format them on display.
However, it has been abandoned since 2015-08-06 and was designed for Django 1.7 and 1.8, making it unsuitable for modern Django projects without significant maintenance or forking.
Use it for:
- Add a phone number field to a Django model with automatic validation and formatting for a specific region.
- Display phone numbers in templates using region-specific formats via the phone_number_format filter.
- Provide a dedicated phone input widget in Django admin with country and region selection.
- Store and retrieve phone numbers with their country code and region code as separate attributes.
- Format phone numbers inline in templates using custom regex patterns and prefix rules.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Django model field and form field for storing, validating, and formatting phone numbers with region-specific patterns and display rules.
No. The package is abandoned (last commit 2015-08-06) and targets Django 1.7 and 1.8, which are over a decade old. Compatibility with modern Django, Python, and phone number standards is not documented and almost certainly broken. Use a maintained alternative instead.
Install
django-phonenumbers on PyPI
pip
pip install django-phonenumbersuv
uv add django-phonenumberspoetry
poetry add django-phonenumbersInstalling django-phonenumbers
Before you install
Installation is straightforward with no runtime dependencies, but the package is abandoned—last updated 2015-08-06 with no commits since. It was built for Django 1.7 and 1.8, making compatibility with modern Django versions uncertain.
License in practice
Licensed under BSD License (permissive), so commercial and private use are permitted without restriction.
Quickstart
pip install django-phonenumbers
# In settings.py
INSTALLED_APPS = ['django_phonenumbers', ...]
PHONE_NUMBER_REGION = 'GE'
# In models.py
from django_phonenumbers.models import PhoneNumberField
class MyModel(models.Model):
phone = PhoneNumberField()
Requires Django 1.7 or 1.8; compatibility with modern Django versions is not documented and likely broken.
Verify before relying
- Compatibility with Django versions released after 1.8 is unknown.
- Whether the package works with current Python versions despite 'Python 3 :: Only' classifier is unconfirmed.
- Support for modern phone number libraries or standards is unclear given the age of the codebase.
- Whether region-specific formatting actually works as documented for all configured regions.
Package facts
| License | BSD License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 4,026 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 78,487/month — #14,440 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_phonenumbers-1.0.1-py3-none-any.whl
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
phonenumbersliteParses, validates, formats, and analyzes…
permissive · top 5,000 on PyPI
phonenumbersParse, validate, format, and analyze…
permissive · top 1,000 on PyPI
django-phonenumber-fieldProvides a Django model field for storing,…
permissive · top 5,000 on PyPI
django-colorfieldAdds a color field to Django models with an…
permissive · top 5,000 on PyPI
phone-iso3166Maps international phone numbers and mobile…
permissive · top 15,000 on PyPI
django-appconfProvides a base class for Django apps to define…
permissive · top 5,000 on PyPI
django-jsonformProvides a user-friendly JSON editing form…
permissive · top 15,000 on PyPI
google-i18n-addressValidates, normalizes, and formats postal…
permissive · top 15,000 on PyPI
django-admin-rangefilterAdds date range, datetime range, and numeric…
permissive · top 5,000 on PyPI
brazilnumValidates and formats Brazilian identification…
permissive · top 15,000 on PyPI