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:嗯,它回答了你原来的问题;这是回答的正常模式;处理原始查询和提供备选方案。