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第三方库


热门话题
JavaGWT:何时使用Lazydemelement?   Java中跟踪消失线程的多线程处理   java Springboot未能配置数据源:“url”,但我没有使用数据库   java为按钮生成随机位置   math Java:包含二项式系数计算的表达式   java通过AsyncTask传递参数   从路径错误创建java文件   高流量网站的性能播放框架、Java、Apache、PostgreSQL、JPA和Hibernate   java将4D矢量转换为长矢量   arraylist Java循环在没有任何错误的情况下终止   java正在制作一个计算器应用程序,希望在第二个片段中更新历史,但无法完成   java将信息从IntentService发送到Activity   java如何在游戏中插入大量实体!工作   javascript如何在ScriptEngineforJava中从数学中获得准确的结果?