Kant1992 2021-08-09 15:03 采纳率: 100%
浏览 41
已结题

请教巨佬们,如何在django一个模板变量中使用另一个变量??

各位巨佬,最近在学习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 }}变量中嵌套使用?或者巨佬们有什么别的解决思路也可以提供下,先行谢过!

  • 写回答

1条回答 默认 最新

  • 忍气吞声埋头苦干 2021-08-09 15:25
    关注

    如果是自己随便搭着玩的页面,可以在响应页面的时候把变量都传进去,你随便用哪个。
    return render(request, 'xxx.html',locals())
    复杂的逻辑最好在后端里处理,模版语句毕竟不太灵活。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 修改了问题 8月9日
  • 修改了问题 8月9日
  • 展开全部

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊