各位巨佬,最近在学习django的过程中遇到一个问题,就是无法在django模板的变量中继续引用另外一个变量。我目前的数据表记录大致如下:
attr value
article1url x
article1tit x
article2url x
article2tit x
我要根据articlex依次在li标签中展现,如
<li>
<a href=article1url>article1tit</a>
</li>
<li>
<a href=article2url>article2tit</a>
</li>
我的解决思路是用后端返回[{'article1url':'x','article1tit':'x'}, {'article2url':'x','article2tit':'x'}]样的列表,然后在模板中调用自定义的range()函数获取数字,和article和url拼接生成article1url和article2等,通过{{ i.url }},{{ i.tit }}来获取列表字典中的数据,模板代码大致如下:
{% for i in li %}
{% d_range 1 11 as c %}
{% for j in c %}
{% addstr "article" j "url" as url %}
{% addstr "article" j "tit" as tit %}
<li>
<a href="{{ i.url }}">{{ i.tit }}</a>
</li>
{% endfor %}
{% endfor %}
但结果上{{ i.url }}访问的好像是键'url',而不是我as的url即键'article1url',最终返回结果是空!如何让django知道{{ i.url }}中的url指的是我上面as的url而不是'url'字符串呢?
PS:我注意到php中可以使用类似$val['article'.$i.'url']的方法来实现上述目的,但django中好像不能像这样直接拼接字符串,要拼接字符串需要自定义标签,那自定义标签的返回结果如何在{{ i }}变量中嵌套使用?或者巨佬们有什么别的解决思路也可以提供下,先行谢过!