*args, **kwargs in jinja2 macros *args, **kwargs in jinja2 macros python python

*args, **kwargs in jinja2 macros


The trick is that kwargs has to be accessed at least once in any macro that should accept them. That is to say, you must call {{ kwargs }} once in macro body without declaring it in macro argument list. The same is true for {{ varargs }}.

This will not work

{% macro example_2(one, two) %}    * {{one}} - {{two}}{% endmacro %}{{example_2(1, 2, test="Hello")}}

This will

{% macro example_2(one, two) %}    * {{one}} - {{two}}    * {{kwargs}}{% endmacro %}{{example_2(1, 2, test="Hello")}}