刚开始学用 jinja 来渲染 html,遇到个 macro 调用 macro 的问题,就是用 call 来实现,按照官方的文档的样例写的,但是一直报错。
代码 是这样的:
{% macro dump_users(users) %}
<ul>
{% for user in users %}
<li>{{ caller(user) }}</li>
{% endfor %}
</ul>
{% endmacro %}
{% call(user) dump_users(users) %}
{{ user }}
{% endcall %}
{{ dump_users(users) }}
错误信息:
File "scorePage.html", line 16, in template
<li>{{ caller(user) }}</li>
UndefinedError: No caller defined
查了好多资料,发现都是这么写的,,但是我这写的就报错。。真的被折磨了好久。。太菜了。。能不能告诉下到底哪里出问题了。。十分十分感谢!!
首先你會發現你定義的 macro
dump_users
內部需要調用caller
但是你在這行:
調用
dump_users
的時候並沒有利用call
標籤來調用,既然dump_users
不是被 "call" 的,自然也沒有 "caller" 讓他在內部調用囉。