如何使用mongoengine在django中使用基本登录表单散列密码?

how to hash password with a basic sign in form in django with mongoengine?

我正在用 django 和 mongoengine 做一个项目。
我想对我的项目进行基本登录。 我做了一个基本表格,要求输入用户名、密码和电子邮件。 我认为密码散列是自动的,但它不是,它保存了我写的内容。 这是我的观点:

def signin(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            email = form.cleaned_data['email']
            password = form.cleaned_data['password']
            user = User(username=username, password=password, email=email)
            user.save()
else:
    form = UserForm()
return render(request, 'myapp/index.html', locals())

一切都已保存,但密码不是哈希值。我错过了什么?

您应该调用 User 实例的 set_password() 方法:

user = User(username=username, email=email)
user.set_password(password)
user.save()