Django管理员的电话号码字段

django-phonenumbers的Python项目详细描述


安装

run  pip install django_phonenumbers

配置设置。py

Add django_phonenumbers to INSTALLED_APPS

管理.py

run manage.py collectstatic

设置.py

PHONE_NUMBER_REGION='GE'PHONE_NUMBERS_FORMATS_BY_REGION={'GE':{'pattern':'(\\d{3})(\\d{2})(\\d{2})(\\d{2})','format':'\\1 \\2-\\3-\\4','prefix_format':'+%s (%s)'},'US':{'pattern':'(\\d{3})(\\d{3})(\\d{4})','format':'\\1 \\2-\\3','prefix_format':'+%s (%s)'},}
  • “电话号码地区”确定将在管理员的相应电话号码字段中选择哪个国家地区
  • “phone_numbers_formats_by_region”用于“phone_numbers_format”筛选器

型号

#models.pyclassMyModel(models.Model):...phone_number=PhoneNumberField()...def__str__(self):returnstr(self.phone_number)

“电话号码”字段的类型将是“电话号码”

classPhoneNumber:def__init__(self,country_code=None,region_code=None,phone_number=None):"""
        :type country_code: str
        :type region_code: str
        :type phone_number: str
        """self.country_code=country_codeself.google_phone_number=Noneself.region_code=region_codeself.phone_number=phone_number

“\u str\uu”和“\u repr\uu”功能被重写,以返回“国家代码”+“+”电话号码“

model.fields.phoneNumberField默认情况下在管理中使用form.fields.phoneNumberField

model.fields.phoneNumberFieldform.fields.phoneNumberField正在验证并格式化(以国家格式)输入的数字

模板示例

<li>
            {{ number.phone_number }}
            // {{ number.phone_number.region_code }}
            // {{ number.phone_number.country_code }}
            // {{ number.phone_number.phone_number }}
            <div>
                {% load phone_numbers_extra %}
                <h4>Filter
                    <small>{{ number.phone_number|phone_number_format }}</small></h4><h4>Simple tag
                    <small>
                        {% phone_number number.phone_number pattern='(\\d{3})(\\d{3})(\\d{3})' number_format='\\1 \\2-\\3' prefix_format='+%s (%s)' %}
                    </small></h4></div></li>

电话号码格式使用来自settings.py的电话号码格式按地区来确定电话号码格式

示例

'GE': {  'pattern': '(\\d{3})(\\d{2})(\\d{2})(\\d{2})', 'format': '\\1 \\2-\\3-\\4', 'prefix_format': '+%s (%s)'},
  • “GE”:地区代码

  • 'pattern''(\\d{3})(\\d{2})(\\d{2})(\\d{2})'是正则表达式。此regex将电话号码分成4组:
    • 3位数
    • 2位数
    • 2位数
    • 2位数
  • 'format':'\\1\\2-\\3-\\4'数字是上面提到的组。例如,如果要在作用域中放置最后两位数字,则应写入“\1\2-\3-(\4)”,结果将是xxx xx xx-(xx)

  • '前缀格式':'+%s(%s)'第一个'%s'是国家代码第二个移动运营商或城市代码,例如+995(595),其中995是我的国家代码,595是我的移动运营商代码。您可以更改格式。例如'[%s][%s]'将给出[995][595]此结果

使用这个简单的标记,您可以指定内联格式

{%phone_numbernumber.phone_numberpattern='(\\d{3})(\\d{3})(\\d{3})'number_format='\\1 \\2-\\3'prefix_format='+%s (%s)'%}

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

推荐PyPI第三方库


热门话题
java Kafka在producer上流式传输自定义头   java ExecutorService:不需要输出   java并发读取不可修改的映射   如何匹配Java计算机的给定输出猜你的数字游戏;二进制搜索   java使用数据库创建新对象   javascript如何用spring mvc上传图像我尝试了这种方法,如何解决这个问题   java如何使用Quarkus Panache仅选择某些字段?   java如何通知其他对象(如何“关闭”队列)ArrayBlockingQueue中将不再有元素,   java使用JavaFX MediaPlayer从MP3读取ID3v2标记   当我们在Android上打开应用程序时,java仅在第三次显示toast   apache spark java。RuntimeException:java。lang.Integer不是bigint:java架构的有效外部类型。伊奥。IOException   模拟插座。用于测试Java的getOutputStream()   java在git对分期间,只运行失败的测试安全吗?或者我们应该运行所有测试?   java Android MediaPlayer音量非常低(已调整音量)   java组织。冬眠服务UnknownServiceException:请求的未知服务[org.hibernate.ogm.service.impl.OgmConfigurationService]   java扫描程序没有停止   java无法在JBoss EAP 6.2上调用远程EJB