A Django library which interfaces with python-phonenumbers to validate, pretty print and convert
python-phonenumbers is a port of Google's libphonenumber library, which powers Android's phone number handling.
PhoneNumber, a pythonic wrapper around
PhoneNumberField, a model field
PhoneNumberField, a form field
PhoneNumberPrefixWidget, a form widget
pip install django-phonenumber-field
Use it like any regular model field:
from phonenumber_field.modelfields import PhoneNumberField class MyModel(models.Model): name = models.CharField(max_length=255) phone_number = PhoneNumberField() fax_number = PhoneNumberField(blank=True)
Internally, PhoneNumberField is based upon
CharField and represents the number as a string of an international phonenumber in the database (e.g
'+41524204242'). As with
CharField's, it is discouraged to use
The object returned is a PhoneNumber instance, not a string. If strings are used to initialize it,
MyModel(phone_number='+41524204242') or form handling, it has to be a phone number
with country code.