Added example of PhoneNumberTYpe

This commit is contained in:
Konsta Vesterinen
2013-10-30 15:58:18 +02:00
parent 05e911ee5b
commit 0346f4f38d
2 changed files with 48 additions and 6 deletions

View File

@@ -56,6 +56,14 @@ SQLAlchemy-Utils provides various new data types for SQLAlchemy.
.. module:: sqlalchemy_utils.types .. module:: sqlalchemy_utils.types
ArrowType
^^^^^^^^^
.. module:: sqlalchemy_utils.types.arrow
.. autoclass:: ArrowType
ChoiceType ChoiceType
^^^^^^^^^^ ^^^^^^^^^^
@@ -97,6 +105,22 @@ NumberRangeType
.. autoclass:: NumberRangeType .. autoclass:: NumberRangeType
PasswordType
^^^^^^^^^^^^
.. module:: sqlalchemy_utils.types.password
.. autoclass:: PasswordType
PhoneNumberType
^^^^^^^^^^^^^^^
.. module:: sqlalchemy_utils.types.phone_number
.. autoclass:: PhoneNumberType
ScalarListType ScalarListType
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -105,6 +129,15 @@ ScalarListType
.. autoclass:: ScalarListType .. autoclass:: ScalarListType
TimezoneType
^^^^^^^^^^^^
.. module:: sqlalchemy_utils.types.timezone
.. autoclass:: TimezoneType
URLType URLType
^^^^^^^ ^^^^^^^
@@ -122,14 +155,8 @@ UUIDType
.. autoclass:: UUIDType .. autoclass:: UUIDType
TimezoneType
^^^^^^^^^^^^
.. module:: sqlalchemy_utils.types.timezone
.. autoclass:: TimezoneType
The generates decorator The generates decorator
----------------------- -----------------------

View File

@@ -76,6 +76,21 @@ class PhoneNumberType(types.TypeDecorator, ScalarCoercible):
changes them back to PhoneNumber objects on the way out. If E164 is used changes them back to PhoneNumber objects on the way out. If E164 is used
as storing format, no country code is needed for parsing the database as storing format, no country code is needed for parsing the database
value to PhoneNumber object. value to PhoneNumber object.
::
class User(self.Base):
__tablename__ = 'user'
id = sa.Column(sa.Integer, autoincrement=True, primary_key=True)
name = sa.Column(sa.Unicode(255))
phone_number = sa.Column(PhoneNumberType())
user = User(phone_number='+358401234567')
user.phone_number.e164 # u'+358401234567'
user.phone_number.international # u'+358 40 1234567'
user.phone_number.national # u'040 1234567'
""" """
STORE_FORMAT = 'e164' STORE_FORMAT = 'e164'
impl = types.Unicode(20) impl = types.Unicode(20)