Python jinja变量能否作为for循环中的参数传递?

Python jinja变量能否作为for循环中的参数传递?,python,google-app-engine,jinja2,Python,Google App Engine,Jinja2,我定义了一个字符串类型的参数 % set my_argument = 'list_from_gae' %} 我想将其作为for循环中的参数传递: {% for i in my_argument %} do sth {% endfor %} my_参数的字符串文字对应于从python应用程序传递的列表。上面的代码不起作用,但是如果我用字符串文字替换for循环中的_参数,它就起作用了 {% for i in list_from_gae %} do sth {% endfor %} 如何

我定义了一个字符串类型的参数

% set my_argument = 'list_from_gae' %}
我想将其作为for循环中的参数传递:

{% for i in my_argument %}

do sth

{% endfor %}
my_参数的字符串文字对应于从python应用程序传递的列表。上面的代码不起作用,但是如果我用字符串文字替换for循环中的_参数,它就起作用了

{% for i in list_from_gae %}

do sth

{% endfor %}

如何让jinja理解my_参数是一个变量而不是字符串文字?

如果没有额外的工作将上下文作为一个字典来获取,就不能这样做。请参见,一旦您拥有了该上下文,您就可以执行
context()[我的参数]

您最好将来自\u gae的
列表\u放入传递到模板的字典中;然后可以使用该名称访问该名称

例如,如果您现在正在通过:

template_values = {'list_from_gae': list_from_gae}
然后,请输入:

template_values = {'lists': {'list_from_gae': list_from_gae}}
并通过以下方式解决这些问题:

{% for i in lists[my_argument] %}

我确实通过Google应用程序引擎的
template\u values={'list\u from\u gae':list\u from\u gae}
传递我的列表。你指的是字典吗?@LLaP:不太清楚;您必须添加另一个字典:
template_values={'lists':{'list_from_gae':list_from_gae}}
,然后使用
lists[my_argument]
。很好,工作正常。我建议您编辑您的答案-删除第一条建议,只关注第二条建议,并从您的第二条评论中添加代码示例。不管怎样,我还是要投票支持它,但对其他人来说,把所有问题都列入答案是非常有用的。@LLaP:嗯,它回答了你原来的问题;这是回答的正常模式;处理原始查询和提供备选方案。