将变量从 urls.py 传递到 html

问题描述 投票:0回答:0

我将 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> &nbsp; {{ 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> &nbsp; {{ 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> &nbsp; {{ message }} </h6>

    {% endif %}

{% endfor %}

如果你帮我解决这些问题,我将不胜感激!

html django django-urls
© www.soinside.com 2019 - 2024. All rights reserved.