django电话号码的轻量级模型和表单域

django-phone-field的Python项目详细描述


django phone字段

django中电话号码的轻量级模型和表单字段

  • 查看和编辑表单中的电话号码,并以漂亮的格式查看和编辑django管理员:(415) 123-4567
  • 将所有电话号码规范地存储在数据库中,以便于搜索和唯一性:+14151234567
  • 内置对简单扩展的支持:(415) 123-4567, press 88
  • 不受国际号码的限制(但也不格式化)
  • 自动格式化模板中的电话号码

这个包简单、轻量级,并且没有依赖项。然而,它并不试图解决幻想 问题或处理国际电话号码。对于功能齐全的电话号码套餐,请查看 ^{}

安装

这个包是为python 3和django 1.10+设计的。安装方式:

pip install django-phone-field

然后将'phone_field'添加到INSTALLED_APPS设置中。

用法

在你的models.py

from django.db import models
from phone_field import PhoneField


class MyModel(models.Model):
    name = models.CharField(max_length=128)
    phone = PhoneField(blank=True, help_text='Contact phone number')

PhoneField接受django的标准选项CharField。默认设置为max_length=31。感觉 可以自由地覆盖它,设置blank=True等。

有一个特殊的参数E164_only=False,它添加了一个表单验证器来只接受 E164格式(目前仅支持美国电话号码)。

在您的模板中:

User {{ obj.name }} has phone number {{ obj.phone }}

结果:

User Ted has phone number (415) 123-1233

数据库表示

PhoneField试图将所有电话号码强制为以下格式:

+[country code][number]x[extension]
+12223334444x55

其中扩展部分是可选的。如果输入的电话号码不能强制为 格式,PhoneField放弃并简单地按原样存储。

因为所有电话号码都是不带格式存储的,所以您可以将此字段设置为唯一的 在django模型上,它将实际工作。

额外费用

使用|phone模板筛选器尝试显示来自任意文本的格式化电话号码。使用 显示原始未格式化值的|raw_phone模板筛选器。

使用属性.is_E164检查phoneNumber对象是否为E164格式。

还提供了.is_standard(e164,但允许扩展)和.is_usa

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java找不到当前线程的会话   同步Java同步方法调用非同步方法   这段代码的java时间复杂度是如何列出一个集合的所有子集的?   java Jetty SslConnectionFactory nextProtocol   为什么在java集合中使用游标而不是for循环   java如何对长函数进行单元测试?   如何从java中的文本输入创建数组   java工具栏内容未显示,尽管出现了片段内容   java MediaPlayer无法处理本地文件   java在多次读取时,从TCP服务器读取的数据将挂起   java组织。springframework。数据领域无法将PageImpl强制转换为   java如何使用@WithMockUser并从属性文件中传递用户名和密码?   JavaSpringBootGradle插件2。x如何使用自定义启动器布局工厂   sockets Java客户端和服务器之间使用字符串等进行通信的“行业标准”方法是什么   java变量引用不存在的资源:${project\u loc:project\u name}   搜索如何返回LDAP Java中所有用户的特定属性?   JDK1.8.016x的java密钥斗篷代理问题   spring如何使用Java中的Exchange获取邮件   java Kotlin+Dagger 2:Dagger*文件不会生成   如何在传入的double上执行操作,然后在Java中返回