django admin中的密码字段不显示值

时间:2017-07-05 11:12:59

标签: python django

我有一个船员模型。该表有一个密码字段。我不想以纯文本显示密码。所以我添加了使用widget=forms.PasswordInput()的表单。但是在保存数据后,这不会显示密码。如何以隐藏格式显示密码?

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

1 个答案:

答案 0 :(得分:1)

如果你需要安全密码(我完全同意这不是django用户的方式,但我确实有一些其他连接密码保存)你应该看看django-extensions,使用python-keyczar加密密码)。

为了回答你的问题,我发现密码小部件没有显示密码是填写还是空。 (我希望点或星号表明该领域有一些东西,但当然不应该显示。)

确实如此:

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

技巧是render_value = True