我在使用通过我的视图传入的上下文显示一些div时遇到了问题。在我的views.py中,我传递了一个值“total_used”和"total“。
views.py:
def home(request):
context = {
"reward": [
{
"total": 5,
"total_used": 2
}
]
}
return render(request, "web/index.html", context)模板:
{% 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)。
我试过了,但不起作用:
{% 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>发布于 2019-04-21 08:21:04
从context定义中删除方括号[]。您的views.py应该如下所示:
def home(request):
context = {
"reward": {"total": 5, "total_used": 2}
}
return render(request, "web/index.html", context)发布于 2019-04-21 09:42:53
我最终在视图中计算total-total_used,然后将其添加到我的上下文中:
views.py:
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)模板:
{% 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>https://stackoverflow.com/questions/55778655
复制相似问题