SSN的自定义密码Django字段?

时间:2016-03-14 22:00:24

标签: jquery django

我正在使用django.contrib.localflavor.forms中的USSocialSecurityNumberField并启用了PasswordInput小部件。

ssn = USSocialSecurityNumberField(label='SSN',
required=False,
widget=forms.PasswordInput(render_value=False))

我最初使用jQuery掩盖了该字段:

$('#ssn').mask('999-99-9999');    

这并不像我想的那样有效,因为每个角色,包括面具' _'和' - '带有密码占位符字符的字符。这使得掩码看起来像SSN字段已经填充,并且不会帮助用户使用' - '占位符。是否有内置的解决方案?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用django-input-mask包来实现此目的。您可以使用pip安装它。

pip install django-input-mask

您还需要将input_mask添加到INSTALLED_APPS设置。

要实现您要执行的操作,您必须创建自定义小部件。

from input_mask.widgets import InputMask

class SSNInput(InputMask):
    mask = {'mask': '999-99-9999'}

class YourForm(forms.ModelForm):
    ssn_field = SSNInput()

有关更多文档,您可以看到github page