ฉันต้องการเข้าถึงตัวแปรในเนมสเปซแมโคร jinja2 ภายในฟังก์ชันบริบท บอกว่ามาโครของฉันดูเหมือนว่า:
{% macro show_var(a) %}
{{ show_var_context_function("a") }}
{% endmacro %}
และฟังก์ชั่นบริบทของฉันมีลักษณะดังนี้:
@contextfunction
def show_var_context_function(context, var_name_string):
return context[var_name_string]
ตอนนี้ฉันคิดว่าบริบทควรมีสิทธิ์เข้าถึง a... ควรเก็บไว้ในบริบทที่ฉันคิด แต่โค้ดด้านบนจะเพิ่ม NameError บน a โดยบอกว่าไม่ได้กำหนดไว้ภายในบริบท ฉันสงสัยว่าเป็นเพราะบริบทควรจะเป็นบริบทของเทมเพลตไม่ใช่มาโครใช่ไหม
อย่างไรก็ตาม มีวิธีใดบ้างในการเข้าถึงบริบทของมาโคร?