当前位置: 首页 > 知识库问答 >
问题:

Django动态更改模板中的索引

卢书
2023-03-14

我的模板中当前有以下代码:

{% for test in page.object_list %}
    <tr>
        <td colspan="2" class="testsuite">{{ test.name.0 }}</td>
        <td class="testsuite">Failed: {{ percentages.0 }}%</td>
   </tr>
{% endfor %}

其中测试。名称0是测试套件的名称,百分比是该测试套件中失败测试用例的列表。我想知道如何才能改变百分比。0到类似于百分比的值。i其中ifor循环的每次迭代中递增。

UPDATE
在尝试@Gocht的答案后,我有以下代码:

在我的模板标签/get_percentage.py文件中

from django import template
register = template.Library()

@register.filter
def get_percentage(percentage_list, i):
    return percentage_list[int(i)]

在我的模板中

{% load get_percentage %}
{% for test in page.object_list %}
    <tr>
        <td colspan="2" class="testsuite">{{ test.name.0 }}</td>
        <td class="testsuite">Failed: {{ percentages|get_percentage: forloop.counter0 }}%</td>
    </tr>
{% endfor %}

我遇到了“字符串索引超出范围”错误。我试图寻找可能的原因,但没有一个答案与自定义模板标记相关。

共有1个答案

尚嘉庆
2023-03-14

我假设你在你的问题中遗漏了百分比。0而不是百分比。我。在模板上的for中,可以使用forloop变量访问索引。这样地:

{% for test in page.object_list %}
    {{ forloop.counter }}   # This will start at 1
    {{ forloop.counter0 }}  # This will start at 0
    # do something here
{% endfor %}

看:这个答案

 类似资料:
  • 我正在尝试为我正在工作的网站添加对阿拉伯语的支持,所以目前我的模板是这样的 无论如何,django-allauth 都会尝试从 / 加载模板(在他们的视图中是硬编码的),但我想在必要时基于上下文变量加载 RTL(从右到左)版本,所以我考虑了四个解决方案,但它们对我来说似乎都不够好(我不是说我不会这样做, 我是说我找不到更好的方法,如果有的话) > < li> 在“我的覆盖”中设置一个条件以加载LT

  • 提示: ●一个地图,最多支持4种模板。 ●新增字段设置字段名称及字段类型。 操作步骤: 1)在动态模板中点击新增字段弹出新增字段窗口。 2)填写字段名称及选择字段类型,点击确定后,在内容字段下显示新增字段。 注意: ①字段名称不能出现重复。 ②字段名称及字段类型可以进行编辑和删除。 ③鼠标左键选择字段可以进行字段顺序调整。 提示: ●勾选 "提交发布动态时所在位置" ,在手机端发布动态的时候,会定

  • 问题内容: 关于扩展django管理模板的一个(不是这样)快速问题。 我试图通过在结果行(row1和row2类)之间添加一个包含一些与该对象相关的对象的中间行来更改特定模型的结果列表(在django lingo中更改列表)。 我搜索了代码,但没有找到一种方法来执行此操作。非常感谢任何指针。代码也将有所帮助。 PS:我知道我应该设计自己的界面,但这是一个内部项目,我没有太多时间可以花时间。另外,dj

  • 问题内容: 我已经创建了Django网站,但是我喝了Koolaid,并且想要创建iPhone版本。经过深思熟虑后,我提出了两种选择: 制作其他网站,例如i.xxxx.com。使用Django的站点框架将其绑定到同一数据库中。 寻找一些中间件时间来读取用户代理,并动态更改模板目录。 但是,我真的更喜欢选项2。我有所保留,主要是因为Django文档不鼓励动态更改设置。我发现了一个片段,可以满足我的需求

  • 问题内容: 我在页面上有一些循环,需要根据循环号列出项目。 当我打电话时: 一切正常,但是我真正需要的是: MyCustomRangeTag给了我它可以使用的Python ,而我已经拥有了数量。根据循环号,1、2、3等也是如此。这有可能吗? 问题答案: 这不可能直接实现,因为Django认为这是查找的关键-而不是x 的值。因此,当尝试查找而不是。 使用以下过滤器作为解决方法: 并像这样使用

  • 问题内容: 我需要包括两个按钮或链接,以允许用户在英语和西班牙语之间更改语言。我已经阅读了文档并尝试了以下操作: 但是,每次我单击该按钮时,页面都会重新加载,但语言完全不变。我想念什么吗? 注意:我尚未设置,因为我只想以所需的语言重新加载当前页面。 如果我使用文档提供的默认格式,则结果是相同的:页面重新加载,但语言未更改: 更新: 经过进一步测试后,我注意到在和中都使用和都存在问题。目前,我有一个