2017-07-05 72 views
0

我有一個船員模型。該表有一個密碼字段。我不想以純文本顯示密碼。所以我添加了表格,我已經使用了widget=forms.PasswordInput()。但是這不會在保存數據後顯示密碼。如何以隱藏格式顯示密碼?django admin中的密碼字段不顯示值

class Crew(models.Model): 
    crew_id = models.AutoField(primary_key=True) 
    crew_code = models.CharField(max_length=200, null=False, unique=True) 
    crew_name = models.CharField(max_length=200, null=False) 
    crew_password = models.CharField(max_length=200, null=False) 

Forms.py

class UserForm(forms.ModelForm): 
     crew_password = forms.CharField(widget=forms.PasswordInput()) 

     class Meta: 
      model = Crew 
      fields = ('crew_name', 'crew_password', 'crew_code', 'crew_id') 

enter image description here

+0

發表您的觀點也一樣,你是如何保存的數據,你是什麼意思沒有顯示的密碼是什麼意思?不顯示或以純文本顯示? – Exprator

+0

密碼保存後,您將無法查看。只是哈希。 –

+1

爲什麼要以純文本形式存儲和顯示密碼?這是一個_huge_安全性失策,您可能會遇到[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Chris

回答

0

如果您需要安全的密碼(我完全同意這不是Django的用戶的方式,但我確實有一些其他的連接密碼保存)你應該看看django-extensions,使用python-keyczar來加密密碼)。

要回答你的問題,我也發現密碼小部件不顯示密碼是填寫還是空的。 (我希望點或星號顯示該領域有某種東西,但不應該顯示)。

這樣做恰好:

class SomeConnectionForm(forms.ModelForm): 
    class Meta: 
     widgets = { 
      'password': forms.PasswordInput(render_value = True), 
     } 

的伎倆是render_value =真

相關問題