Macro works!
TypeError: macro 'google_analytics' was invoked with two values for the special caller argument. This is most likely a bug.
<!-- macros.html -->
{% macro google_analytics() %}
<!-- Google Analytics script -->
{% endmacro %}
<!-- basic.html -->
{% extends 'layout/base.html' %}
{% from 'macros.html' import google_analytics %}
{% block grid %}
{% block content %}{% endblock %}
{% call google_analytics() %}{% endcall %}
{% endblock %}
127.0.0.1 - - [02/Feb/2017 21:21:14] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1994, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "d:\Project\source\views\site.py", line 236, in index
return render_template('site/index.html', form=form)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\templating.py", line 134, in render_template
context, ctx.app)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\flask\templating.py", line 116, in _render
rv = template.render(context)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\jinja2\environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\jinja2\environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Compilers and Interpreters\Python35\lib\site-packages\jinja2\_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "d:\Project\source\templates\site\index.html", line 1, in top-level template code
{% extends 'layout/basic.html' %}
File "d:\Project\source\templates\layout\basic.html", line 2, in top-level template code
{% from 'macros.html' import google_analytics %}
File "d:\Project\source\templates\layout\base.html", line 29, in top-level template code
{% block grid %}{% endblock %}
File "d:\Project\source\templates\layout\basic.html", line 6, in block "grid"
{% call google_analytics() %}{% endcall %}
TypeError: macro 'google_analytics' was invoked with two values for the special caller argument. This is most likely a bug.
{{ google_analytics() }}
{% call %}
doesn't seem to work with a template that doesn't use caller()
. So your template is wrong, but Jinja should raise a meaningful error instead.
Most helpful comment
{% call %}
doesn't seem to work with a template that doesn't usecaller()
. So your template is wrong, but Jinja should raise a meaningful error instead.