django - Django 模型中的密码字段?

标签 django

我正在尝试创建一个名为 Username 的简单模型,如下所示:

class User(models.Model):
    username = models.CharField(max_length=100) #Id is automatically generated by Django
    password = models.CharField(max_length=100)

这是我正在尝试创建的 Django 模型。问题是用户名和密码属性存储为 CharField,而我希望密码存储为 ** 或数据库中的加密形式。似乎他们没有像 Django 中的 CharField 这样的 PasswordField。最好的方法是什么?

最佳答案

根据THE DOCS这是

password = forms.CharField( 
    widget=forms.PasswordInput(render_value=False), 
    label="Your Password"
)

这导致了

<input type="password" />

以您渲染的形式

关于您的存储部分,您需要存储密码的哈希值,而不是 * 列表,否则您将无法检索它。您可以使用 hashlib模块

user.password = hashlib.sha224(user.password).hexdigest()
user.save()

当然,在实现这一点时你必须非常注意。以上只是一个简单的示例,请查看文档以进一步学习

关于django - Django 模型中的密码字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14193622/

相关文章:

python - DRF Viewset - 如果对象存在则返回 400,如果不存在则返回 200

django - 在Django项目中设置Jinja2

javascript - 对 Django 表单的 AJAX 或 Javascript POST 请求并获取结果

django - 如何为模板制作可重用的 Django 页面导航解决方案

python - 如何为绑定(bind)表单设置默认变量?

python - 允许用户编辑自己的 'profile model' ,与用户模型具有 OneToOne 关系

python - 使用 Django 模板过滤器限制字符数

Django:模型继承:FK & M2M

django admin在 ListView 中对计算字段进行排序

python - 在 Django + Python 3 中格式化日期以注释计数