如何通过重定向到当前页面向用户显示错误消息 - django

时间:2017-10-05 04:16:06

标签: django django-forms django-views

我有一个问题,我觉得我之前已经解决了,但由于某种原因,我无法弄明白。我有一个Django视图,它将更新存储在数据库中的用户信息,该信息涉及用户输入他当前的密码,新密码和新密码的验证。

我已完成处理,以便用户输入所有正确的信息。我不是试图添加else语句,以防用户没有输入当前存在的密码或密码不匹配。

在else语句中的两个注释行中,我想用表单显示当前HTML模板,并显示一条消息,显示为存在的不同错误分配的消息。

if 'passwordSubmit' in request.POST:
    updatePassword = updatePasswordForm(request.POST)
    if updatePassword.is_valid():
        cd = updatePassword.cleaned_data
        old_password = cd['old_password']
        new_password = cd['new_password']
        verify_password = cd['verify_password']
        user = authenticate(username=currentUser.username, password=old_password)
        if user is not None:
            if new_password == verify_password:
                secure_password = make_password(new_password)
                update_user = currentUser
                update_user.password = secured_password
                update_user.save()
            else:
                message = 'The two passwords do not match'
                # if the passwords do no match
        else:
            message = 'The password entered does not match our records'
            # in case the old password is not what is saved in the database

1 个答案:

答案 0 :(得分:1)

回应manan_kalariya的思路,将消息添加到传递给模板的上下文中。假设你在视图中做了类似的事情:

return render(request, "customer/login.html", {"message":message})

然后您可以在模板中执行此操作:

{% if message %}<div>{{message}}</div>{% endif %}

然后根据自己的喜好对其进行设计,并根据表单将其放置在您想要的位置。