2016-03-14 48 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