如何解决在Jinja2中将kwargs从宏传递到url_for
我会直截了当。首先看一下代码
{% macro nav_link(endpoint,name) %}
<li class="nav-item my-2 my-md-0 mx-3 py-0 px-3 {% if request.endpoint.endswith(endpoint) %} active{% endif %}">
<a class="nav-link" href="{{ url_for(endpoint) }}">{{ name }}</a>
</li>
{% endmacro %}
{{ nav_link('main.home','Home') }}
{{ nav_link('main.home','Exprole') }}
{{ nav_link('user.account','Account') }}
{{ nav_link('user.logout','Logout') }}
现在您已经看过代码,可以说我想正常在帐户链接上传递ID,它可以像{{ url_for('account',id=2
)}}那样完成,但是由于此url_for
在宏{{1中}}我只是无法将nav_link中的id传递为kwargs:-nav_link
因为
- kwargs a是一个字典
- 即使我做类似
nav_link('user.account',id=2,'Account')
的操作,并且{{ url_for(endpoint,**kwargs) }}
中也没有kwargs链接(我在这里不需要id),所以kwargs将为none(空字典),因此nav_link('main.home','home')
之后,
将引发错误 - 并且,如果您正在考虑
endpoint
语句,那么kwargs还是一个列表
希望我可以理解 如果您有这个问题的答案,请剪切我想听听您要说的话
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。