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 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分