首页 > 其他分享 >django 中存储手机号的字段, 使用 Django 库 pip install django-phonenumber-field[phonenumbers]

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

时间:2023-06-10 12:22:31浏览次数:59  
标签:phonenumbers name self Django field phonenumber django

原文参见: 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 空间,并根据国际电话号码标准以字符串的形式存储号码。

 

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

 

标签:phonenumbers,name,self,Django,field,phonenumber,django
From: https://www.cnblogs.com/zhangmingda/p/17471058.html

相关文章

  • django admin 后台手动添加数据,设置表单默认自动填充默认值,get_form函数
    需求admin添加数据,表单某字段默认填充值。例如电话号默认填充前缀:+86 效果 实现方法:https://www.codenong.com/529890/在数据库表模型对应的admin后台的管理文件admin.py 内对应Admin管理类配置get_form函数@admin.register(models.UserInfo)classUserInfoAdmi......
  • Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
    第一步:在命令提示符环境使用pipinstalldjango命令安装django第二步:在命令提示符环境使用pythondjango-admin.pystartprojectdjango_greeting命令创建网站django_greeting第三步:利用资源管理器在网站目录django_greeting中创建子文件夹templates,并在该子文件夹中创建文件gree......
  • django form data如何传递到template的vue
    参考:https://docs.djangoproject.com/en/4.2/ref/templates/builtins/#json-scriptafelyoutputsaPythonobjectasJSON,wrappedina<script>tag,readyforusewithJavaScript.Argument:TheoptionalHTML“id”ofthe<script>tag.Forexample......
  • 9.3 Django框架
    Django是一个非常流行的PythonWeb开发框架,它是完整且强大的,适用于构建大型Web应用。在这一章节中,我们将详细介绍Django的基本概念、组件和用法。为了便于理解,我们将使用实例来展示如何使用Django构建一个简单的Web应用。9.3.1安装和创建Django项目首先,使用pip......
  • django中的Case,When查询
    这一篇笔记将介绍条件表达式,就是如何在model的使用中根据不同的条件筛选数据返回。这个操作类似于数据库中ifelifelse的逻辑。1、model和数据准备这篇笔记我们用到的model是Client,放在blog/models.py下classClient(models.Model):REGULAR='R'GOLD=......
  • Django——ORM
    Django——ORM一、模板'parentloop':外层循环'counter0':当前循环获得数据的索引,索引是从0开始计算'counter':当前循环获得数据的索引,索引是从1开始计算'revcounter':当前反向循环获得数据的索引,索引是从1开始计算'revcounter0':当前反向循环获得数据的索引,索......
  • Django——数据库
    Django——数据库django在操作数据库1、配置好要连接的数据库2、定义模型类3、迁移数据库4、使用类对象方式操作数据库数据迁移的命令pythonmanage.pymakemigrationspythonmanage.pymigrate字段的增删改classstu(models.Model):#迁移结束之后,在数据库中......
  • Django——数据库2
    Django——数据库2添加数据#添加数据#1、使用create方法#data=Students.objects.create(name='阿宸',age=26,gender='2',height=1.79)#2、直接写入数据,写入完之后,必须使用save方法保存data=Students(name='叶鹏飞',age=19,gender='2',height=1.......
  • Django——模板
    Django——模板模板:django对模板文件没有特别大的限制,html,txt,没有类型的文件。django提供一种动态生成html页面的快捷方式,也就是模板。模板语言(DTL)1、配置模板pycharm创建django项目会自动将我们的模板templates配置好。#django的默认模板引擎;django也支持并且内......
  • 10_How deploy a Django application using Nginx & Gunicorn in Production
     地址:https://www.codewithharry.com/blogpost/django-deploy-nginx-gunicorn/  HowtohostDjangoApplicationusinggunicorn&nginxinProductionInthispost,wewillseehowtousenginxwithgunicorntoservedjangoapplicationsinproduction. Dj......