一尘不染

Django模型中的密码字段

django

我正在尝试创建一个模型,在其中可以存储其他应用程序的用户名和密码。如何在Django中设置密码字段,使其在admin中不是纯文本格式?提前致谢。


阅读 1328

收藏
2020-03-31

共1个答案

一尘不染

正如@mlissner所建议的那样,该auth.User模型是一个不错的选择。如果你查看源代码,则会看到该password字段是CharField

password = models.CharField(_('password'), max_length=128, help_text=_("Use 
'[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."))

该User模型也有一种set_password方法。

def set_password(self, raw_password):
    import random
    algo = 'sha1'
    salt = get_hexdigest(algo, str(random.random()), str(random.random()))[:5]
    hsh = get_hexdigest(algo, salt, raw_password)
    self.password = '%s$%s$%s' % (algo, salt, hsh)

你可以从此方法中获得一些有关创建和保存密码的线索。

2020-03-31