我将 django 内置消息设置为将一些信息从我的 views.py 文件直接传递到 html 文件。
我直接用
messages.info(request, "User credentials are updated.")
发消息
如下所示,它工作正常。
现在,我打算将变量从 urls.py 直接传递给 HTML。
如下所示:
path('password_change_done/', auth_views.PasswordChangeDoneView.as_view(template_name="account/dashboard.html"), **{'messages': 'User credentials are updated.'}**, name='password_change_done')
当我搜索它时,我看到我可以发送字典,但它对我不起作用。 我试图在 HTML 期望的地方坚持相同的格式(消息字典)。
**{'messages': 'User credentials are updated.'}**
我的 urls.py 文件的一部分:
# Password change
# 1 ) Submit password change form
path('password_change/', auth_views.PasswordChangeView.as_view(template_name="account/password/password-change-form.html"), name='password_change'),
# 2 ) Success message stating that password is changed
path('password_change_done/', auth_views.PasswordChangeDoneView.as_view(template_name="account/dashboard.html"), **{'message': 'User credentials are updated.'}**, name='password_change_done'),
我的 dashboard.html 文件的一部分:
<!-- Django's built-in message template part -->
{% for message in messages %}
{% if message.level == DEFAULT_MESSAGE_LEVELS.SUCCESS %}
<h6 id="message-timer" class="alert alert-success text-center"> <i class="fa fa-sign-out" aria-hidden="true"></i> {{ message }} </h6>
{% endif %}
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}
<h6 id="message-timer" class="alert alert-danger text-center"> <i class="fa fa-exclamation" aria-hidden="true"></i> {{ message }} </h6>
{% endif %}
{% if message.level == DEFAULT_MESSAGE_LEVELS.INFO %}
<h6 id="message-timer" class="alert alert-info text-center"> <i class="fa fa-check-circle" aria-hidden="true"></i> {{ message }} </h6>
{% endif %}
{% endfor %}
如果你帮我解决这些问题,我将不胜感激!