实现intl tel输入的django表单小部件。
django-intl-tel-input的Python项目详细描述
Django国际电话输入
基于 jquery插件intl-tel-input。
这个包是1.0之前的版本,所以没有实现intl tel input的所有功能。不过,它经过了很好的测试,并且在生产中一直很稳定。
版本支持
在以下版本的python和django上测试。
Package | Version support |
---|---|
Python | 2.7, 3.4, 3.5, 3.6, 3.7 |
Django | 1.11, 2.0, 2.1 |
安装
从pypi安装。
pip install django-intl-tel-input
将intl tel输入添加到您的INSTALLED_APPS
,以便django可以找到init
脚本。
...INSTALLED_APPS+=('intl_tel_input',)...
用法
只需将IntlTelInputWidget
添加到表单字段。
fromintl_tel_input.widgetsimportIntlTelInputWidgetclassMyForm(forms.ModelForm):classMeta:model=MyModelfields=['foo','bar']widgets={'bar':IntlTelInputWidget()}...
使用标准格式:
classMyForm(forms.Form):tel_number=forms.CharField(widget=IntlTelInputWidget())...
形成介质
在模板的<head>
中包含{{ form.media.css }}
。这个
将确保在显示小部件之前分析所有样式。
如果您在文档末尾包含jquery,那么不要
忘记用
{{ form.media.js }}
。把它放在一个能让它追上来的街区里
jquery。
如果你在使用
crispy-forms,
静态内容将自动插入到输入旁边。到
防止出现这种情况,请确保在窗体上设置include_media = False
帮手。
classMyForm(forms.Form):...def__init__(self,*args,**kwargs):self.helper=FormHelper()self.helper.include_media=False...
如果需要在头中加载所有js,可以使init.js
脚本等待文档准备好以下代码段。
jQuery(document).ready({{form.media.js}});
所有这些都假设表单上下文变量名为form
。
选项
可以使用关键字参数调用小部件,这些参数转换为 国际电话输入中提供的选项。
允许下拉菜单
显示国家下拉列表。
默认值:True
默认代码
默认选择国家代码。使用auto_geo_ip
时重写。
默认值:'us'
首选国家
总是出现在下拉列表顶部的一系列国家。
默认值:['us', 'gb']
使用默认初始化
使用提供的init.js初始化插件。设置为False
如果你想提供你自己的插件初始化。这是
例如,如果您有自己的geoip实现
喜欢使用。
默认值:True