2016-03-14 49 views
0

我在启用PasswordInput小部件的情况下使用了django.contrib.localflavor.forms中的USSocialSecurityNumberField。SSN的自定义密码Django字段?

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

我用原先掩盖领域使用jQuery:

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

这不工作,我想是因为每一个字符,包括面具“_”和“ - ”字符的密码占位符字符。这会使掩码显示为已经填充了SSN字段,并且不会帮助用户使用' - '占位符。有没有内置的解决方案呢?

回答

1

我想你可以用django-input-mask包来实现这个。您可以使用pip进行安装。

pip install django-input-mask

您还需要添加input_maskINSTALLED_APPS设置。

要实现您想要做的事情,您必须创建一个自定义小部件。

from input_mask.widgets import InputMask 

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

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

更多文档,你可以看到github page

+0

请[不要张贴其基本上由链路的答案](http://stackoverflow.com/questions/how-to-answer)。在你的答案中包含重要的观点;请留下链接以获取更多信息或作为参考。 –

+0

@JoeyWilhelm感谢您的指导,我没有意识到这一点。 – Vibhu

+0

刚刚提供了答案和链接。 – Vibhu