在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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...