首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用作为上下文传递的值在模板中进行计算以显示内容

使用作为上下文传递的值在模板中进行计算以显示内容
EN

Stack Overflow用户
提问于 2019-04-21 07:37:15
回答 2查看 43关注 0票数 0

我在使用通过我的视图传入的上下文显示一些div时遇到了问题。在我的views.py中,我传递了一个值“total_used”和"total“。

views.py:

代码语言:javascript
复制
def home(request):
    context = {
        "reward": [
            {
                "total": 5,
                "total_used": 2
            }
        ]
    }
    return render(request, "web/index.html", context)

模板:

代码语言:javascript
复制
  {% with ''|center:reward.total_used as range %}
  {% for _ in range %}
      <div class="red"></div>
  {% endfor %}
  {% endwith %}

  <div class="blue"></div>

  <div id="reward-count">
      <h5>{{ reward.total_used }}/{{ reward.total }}</h5>
  </div>

例如,我想要2个带有红色类的div和3个带有蓝色类的div (reward.total- reward.total_used)。

我试过了,但不起作用:

代码语言:javascript
复制
  {% with ''|center:reward.total_used as range %}
  {% for _ in range %}
      <div class="red"></div>
  {% endfor %}
  {% endwith %}

    {% with ''|center:reward.total-reward.total_used as range %}
  {% for _ in range %}
      <div class="blue"></div>
  {% endfor %}
  {% endwith %}

  <div id="reward-count">
      <h5>{{ reward.total_used }}/{{ reward.total }}</h5>
  </div>
EN

回答 2

Stack Overflow用户

发布于 2019-04-21 08:21:04

context定义中删除方括号[]。您的views.py应该如下所示:

代码语言:javascript
复制
def home(request):
    context = {
        "reward": {"total": 5, "total_used": 2}        
    }
    return render(request, "web/index.html", context)
票数 0
EN

Stack Overflow用户

发布于 2019-04-21 09:42:53

我最终在视图中计算total-total_used,然后将其添加到我的上下文中:

views.py:

代码语言:javascript
复制
def home(request):
    context = {
        "rewards": [
            {
                "total": 5,
                "total_used": 2
            },
            {
                "total": 7,
                "total_used": 1        
            }
        ]
    }

    for  reward in context['rewards']:
        reward['total_not_used'] = reward['total'] - reward['total_used']

    return render(request, "web/index.html", context)

模板:

代码语言:javascript
复制
{% with ''|center:reward.total_used as range %}
{% for _ in range %}
<div class="reward reward-shaded"></div>
{% endfor %}
{% endwith %}

{% with ''|center:reward.total_not_used as range %}
{% for _ in range %}
<div class="reward"></div>
{% endfor %}
{% endwith %}

<div id="reward-count">
    <h5>{{ reward.total_used }}/{{ reward.total }}</h5>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55778655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档