A Django library which interfaces with python-phonenumbers to validate, pretty print and convert
phone numbers. python-phonenumbers
is a port of Google's libphonenumber library, which powers Android's phone number handling.
Included are:
PhoneNumber
, a pythonic wrapper aroundpython-phonenumbers
'PhoneNumber
classPhoneNumberField
, a model fieldPhoneNumberField
, a form fieldPhoneNumberPrefixWidget
, 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 null=True
.
The object returned is a PhoneNumber instance, not a string. If strings are used to initialize it,
e.g. via MyModel(phone_number='+41524204242')
or form handling, it has to be a phone number
with country code.