是否可以将SQLalchemy中的PhoneNumberType存储为null?

时间:2017-08-06 21:05:16

标签: python sqlalchemy flask-sqlalchemy webargs

我正在使用webargs和python创建API,我的条件是用户必须提供电话号码或电子邮件地址。如果用户仅提供电子邮件地址,那么当sqlalchemy尝试实例化PhoneNumberType时,我会收到预期的错误:

sqlalchemy_utils.types.phone_number.PhoneNumberParseException:(1)(1)提供的电话号码为无。

我的问题是如何让这个数据库字段能够接受一个空电话号码并将该条目保持为空?

以下是我的用户模型的一部分:

import flask_sqlalchemy as sa
...
phone         = db.Column(db.Unicode(20), nullable=True)
country_code  = db.Column(db.Unicode(8), nullable=False)
_phone        = sa.orm.composite(PhoneNumber, phone, country_code)

其他原因需要国家代码,但有没有办法说... _Phone null ??

1 个答案:

答案 0 :(得分:0)

不,因为该库依赖于必须采用raw_number参数的Google lib。你可以试试/除外并忽略

phonenumbers.phonenumberutil.NumberParseException

当该字段为空时,即使您手动更改条目,该对象也不会实例化。