django 中存储手机号的字段, 使用 Django 库 pip install django-phonenumber-field[phonenumbers]

原文参见: https://www.delftstack.com/zh/howto/django/django-phone-number-field/

使用第三方 Django 应用程序的 PhoneNumberField 存储电话号码

要存储电话号码,我们可以使用实现此字段的第三方 Django 应用程序或库:PhoneNumberField

你可以在此处找到此库或应用程序的 GitHub 仓库。

根据官方的 README,这个 Django 库可以验证和转换电话号码。该库与另一个 Python 库 python-phonenumbers 接口,后者是支持 Android 电话号码处理的 Google 的 libphonenumber 库的一个端口。

安装 Django 库

可以使用以下 pip 命令下载这个 Django 库:

pip install django-phonenumber-field[phonenumbers]

由于它是一个广泛的库,就大小而言,你可能需要下载较轻的版本。要下载此库的较轻版本,请使用以下命令:

pip install django-phonenumber-field[phonenumberslite]

设置 Django 库

要使用这个应用程序或库,我们必须将它添加到我们项目的 settings.py 文件中。应用程序名称必须在 INSTALLED_APPS 中输入,如下所示:

INSTALLED_APPS = [
    # Other apps
    "phonenumber_field",
]

使用 Django 库

该库有一个模型字段 PhoneNumberField,可用于存储电话号码。我们的模型将如下所示:

复制代码
from phonenumber_field.modelfields import PhoneNumberField

class UserInfo(models.Model):
    name = models.CharField(max_length=4096, verbose_name="人员称呼")
    email = models.EmailField(verbose_name="邮箱地址")
    phone = PhoneNumberField(unique=True, null=True, blank=True, verbose_name="电话号码")
    description = models.CharField(max_length=8192, verbose_name="备注描述", null=True, blank=True)

    def __str__(self):
        if not self.description:
            d = ""
        else:
            d = self.description
        if not self.phone:
            f = ""
        else:
            f = self.phone.__str__()
        return self.name + ": " + str(self.email) + " " + f + " " + d

    class Meta:
        verbose_name = "人员联系方式"
复制代码

 

PhoneNumberField 字段在内部基于 CharField 空间,并根据国际电话号码标准以字符串的形式存储号码。

 

要了解有关此库的更多信息,请参阅官方文档。

 

posted on   zhangmingda  阅读(263)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-06-10 异常处理
2018-06-10 反射hasattr; getattr; setattr; delattr
2018-06-10 Python 属性方法、类方法、静态方法、 特殊属性__doc__ (内建属性)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示