首页 > 解决方案 > 代码工作正常,只是问题在于成功操作,成功消息不起作用

问题描述

此代码工作正常 更新用户密码是成功操作时面临的唯一问题。成功消息未在页面上打印

视图.py

def change_password(request):
    if request.method == 'POST':
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            user = form.save()
            update_session_auth_hash(request, user)  # Important!
            messages.success(request, 'Your password was successfully updated!')
            return redirect('change_password')
        else:
            messages.error(request, 'Please correct the error below.')
    else:
        form = PasswordChangeForm(request.user)
    return render(request, 'accounts/change_password.html', {
        'form': form
    })

change_password.html

{% extends 'accounts/base.html' %}

{% block content %}
<!-- {{messages}} -->

{{ pwd_updated }}
<form method="post">
  {% csrf_token %}
  {{ form }}
  <button type="submit">Save changes</button>
</form>


{% endblock %}

我试过了,但这也不起作用:

        print(messages.success(request, 'Your password was successfully updated!'))

也试过这个:

    pwd_updated = messages.success(request, 'Your password was successfully updated!')
    return redirect('change_password',{'pwd_updated':pwd_updated})

& 在我的 html 上获取它。

但不工作。

标签: pythondjango

解决方案


在 change_password.html 中尝试使用以下代码:

{% block content %}
    {% for message in messages %}
        {{ message }}
    {% endfor %}

    ...

{% endblock %}

那应该有帮助。


推荐阅读