我将电话号码存储在 model
中,如下所示:
phone_number = models.CharField(max_length=12)
用户将输入一个电话号码,我将使用该电话号码进行 _SMS 身份验证_。该应用程序将在全球范围内使用。所以我还需要一个国家代码。 CharField
是存储电话号码的好方法吗?而且,我如何验证电话号码?
原文由 pynovice 发布,翻译遵循 CC BY-SA 4.0 许可协议
我将电话号码存储在 model
中,如下所示:
phone_number = models.CharField(max_length=12)
用户将输入一个电话号码,我将使用该电话号码进行 _SMS 身份验证_。该应用程序将在全球范围内使用。所以我还需要一个国家代码。 CharField
是存储电话号码的好方法吗?而且,我如何验证电话号码?
原文由 pynovice 发布,翻译遵循 CC BY-SA 4.0 许可协议
pip install django-phonenumber-field
原文由 rgenito 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
您实际上可能会查看国际标准化格式 E.164 , 例如 Twilio 推荐的 格式(它具有用于通过 REST 请求发送短信或电话的服务和 API)。
这可能是最通用的存储电话号码的方式,尤其是当您使用国际号码时。
您可以使用
phonenumber_field
库。它是谷歌 libphonenumber 库的一个端口,支持 Android 的电话号码处理。参见 django-phonenumber-field 。在模型中:
在表格中:
从对象字段中以字符串形式获取电话:
规范化电话字符串(用于测试和其他人员):
针对您的型号的注意事项:E.164 号码的最大字符长度为 15。
要进行验证,您可以采用某种格式组合,然后尝试立即联系该号码进行验证。
我相信我在我的 django 项目中使用了如下内容:
根据 jpotter6 ,您也可以在模型中执行以下操作:
文件 模型.py :