forms.py
class UserRegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput(render_value=True))
class Meta:
model = User
我有views.py来显示表单实例并更新实例。
在编辑表单数据时,所有其他字段都显示正确的值,密码字段显示数据库中的整个散列值,而不是输入的密码。
我不知道如何在数据库中显示输入的密码而不是散列值。
答案 0 :(得分:3)
当然,你不能这样做。这是因为某种原因,这使得无法获得明确的文本值。
您必须注意到,在您更新时,任何网站或应用程序都不会显示您当前的密码:您通常必须自己输入以进行验证,然后输入两次新密码。
答案 1 :(得分:0)
记住安全性。
#app/hashers.py
from django.contrib.auth.hashers import BasePasswordHasher
from django.utils.datastructures import SortedDict
class DummyPasswordHasher(BasePasswordHasher):
algorithm = "dummy"
def encode(self, password, salt):
return "dummy$%s" % (password)
def verify(self, password, encoded):
algorithm, hash = encoded.split('$', 2)
return hash == password
def safe_summary(self, encoded):
algorithm, hash = encoded.split('$', 2)
return SortedDict([
('algorithm', algorithm),
('password', hash),
])
#settings.py
PASSWORD_HASHERS = (
'app.hashers.DummyPasswordHasher',
)
PREFERRED_HASHER = 'app.hashers.DummyPasswordHasher'
编辑我已更正拼写错误