반응형
* args, ** jinja2 매크로의 kwargs
Jinja2 매크로에 대한 추가 인수 및 kwargs는 어떻게 처리됩니까? 문서는 명확하지 않습니다.
예를 들어, 이것은 분명히 잘못되었습니다.
{% macro example_1(one, two, **kwargs) %}
do macro stuff
{% endmacro %}
결과적으로
jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token 'name', got '**'
문서는 말합니다 :
Kwargs
등 변수 인수 하지만 키워드 인수. 사용되지 않은 모든 키워드 인수는이 특수 변수에 저장됩니다.
불행히도 추가 키워드 인수 조합은 오류입니다.
{% macro example_2(one, two) %}
do macro stuff
{% endmacro %}
{{ example_2(one, two, test='test') }}
TypeError: macro 'example_2' takes no keyword keyword argument 'test'
나는 예제가 없으며 Jinja2 소스 코드 atm에서 파고 들지 않습니다. 이 시점에서 문서가 명확하지 않습니다. 어떤 생각이라도 감사합니다.
트릭은 즉 kwargs되어야한다 적어도 한 번 액세스 를 받아 들여야 어떤 매크로입니다. 즉, 매크로 인수 목록에서 선언 하지 않고{{ kwargs }} 매크로 본문에서 한 번만 호출해야 합니다. 에도 마찬가지입니다 .{{ varargs }}
이것은 작동하지 않습니다
{% macro example_2(one, two) %}
* {{one}} - {{two}}
{% endmacro %}
{{example_2(1, 2, test="Hello")}}
이것은
{% macro example_2(one, two) %}
* {{one}} - {{two}}
* {{kwargs}}
{% endmacro %}
{{example_2(1, 2, test="Hello")}}
참조 URL : https://stackoverflow.com/questions/13944751/args-kwargs-in-jinja2-macros
반응형
'Program Club' 카테고리의 다른 글
| 난독 화 된 코드에서 문자열 숨기기 (0) | 2020.12.31 |
|---|---|
| Java 바이트 기본 유형에 대한 실제 용도가 있습니까? (0) | 2020.12.31 |
| C #으로 플로팅 (0) | 2020.12.31 |
| Commodore 64에서 화면 테두리에 그리기 (0) | 2020.12.31 |
| INNER JOIN이 EXISTS보다 더 나은 성능을 제공 할 수 있습니까? (0) | 2020.12.31 |