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 2023-06-10 12:13 zhangmingda 阅读(224) 评论(0) 编辑 收藏 举报