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

Django模板中的For循环在使用添加筛选器时导致错误

上官培
2023-03-14

我试图在我的模板中添加两个变量,将两个分数合并在一起并打印值。问题是,当循环进入一个尚未发生的游戏时,它会踢出一个错误,因为变量还不存在。

我应该添加什么来跳过循环中没有分数的游戏?

    {% for game in games %}
        <p class="light-blue text-center">
            Total: {{ game.scoreboard.score.home|add:game.scoreboard.score.away }}
        </p>
    {% endfor %}

共有1个答案

公羊兴文
2023-03-14

我建议在模型中实现这一点,而不是在模板中。

因此,如果您有score的模型,例如,您可以将其实现为:

class Score(models.Model):
    home = models.IntegerField()
    away = models.IntegerField()
    
    @property
    def total(self):
        return self.home + self.away

然后将其呈现为:

{% for game in games %}
    <p class="light-blue text-center">
        Total: {{ game.scoreboard.score.total }}
    </p>
{% endfor %}

如果数据是字典的结构。您可以在视图中使用以下方法对此进行预处理:

def my_view(request):
    # … some data …
    for game in data['games']:
        score = game['scoreboard']['score']
        score['total'] = score['home'] + score['away']
    # …
 类似资料:
  • 问题内容: 如何在Django模板中编写数字循环?我的意思是 问题答案: 我使用了一种简单的技术,该技术非常适合没有特殊标签且没有其他上下文的小情况。有时候这很方便

  • 问题内容: 我在显示日期的django模板中有以下for循环。我想知道是否有可能在循环中迭代一个数字(在以下情况下为i)。还是我必须将其存储在数据库中,然后以days.day_number的形式查询? 问题答案: Django提供了它。你可以使用以下任一方法: 索引从1开始。 索引从0开始。 在模板中,你可以执行以下操作:

  • 在django模板中,我有以下for循环显示天数。我想知道是否有可能在循环中迭代一个数字(在下面的例子I中)。或者我必须将其存储在数据库中,然后以天的形式进行查询。第几天?

  • 问题内容: 我需要在模板中循环。 它是与预准备数组一起使用的一种方法,还是如何将此功能添加到模板中? 问题答案: 最简单的方法可能是使用和外部函数。例如(播放中): 在模板中:

  • 我需要在每个循环中生成唯一的id,而不是"城市选择" 我如何在这里生成它? 我需要一些像这样的ID: 输出:

  • 我有这样的疑问: 在模板中,我希望通过以下方式获取数据: 但不是产生数据作为: 它的结果是 发生了什么?我有理由在列表中存储数据。如何分别访问每个数据。谢谢 用途:颜色存储在数据字段中为:,因此我希望实现: 编辑类Hello(models.Model):用户=模型。外键(用户)数据=模型。字符域(最大长度=255)