2

我正在尝试创建一个名为 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。最好的方法是什么?

4

2 回答 2

2

根据文档,它是

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()

当然,在执行此操作时您必须非常注意。以上只是一个简单的示例,请查看文档以进一步学习

于 2013-01-07T10:07:49.883 回答
0

Django 带有用户模型。它在 django.contrib.auth.models 下。该模型具有您需要的一切,如果已经有一个,那么开始创建自己的模型将是愚蠢的。您还在 django.contrib.auth.forms 中有一个用户创建和身份验证表单,例如用户模型中的 set_password 方法和堆更多的东西。

于 2013-01-08T10:02:15.693 回答