我想创建一个像地图一样的表格,显示仓库中纸卷的位置,重量和状态。位置包括车道(A,B,C,D,E)和位置(1,2,3,...,13)。状态可以在4种情况下取决于纸卷的重量,我想以不同的颜色显示它们:
1.重量> 700公斤。 ---绿色
2. 400<重量< 700公斤。 ---蓝
3. 100<重量< 400公斤---黄色
4. 100<重量kgs。 ---红色
例如,代码“AAA111”的2个纸卷位于B-4和B-9;分别重300和500公斤。所以在地图中应该在B-4显示黄色,在B-9显示蓝色。
我尝试使用模板中的“for”标记(例如inventory.html)从列表中创建表格。以下是相关列表,包括位置列表(posb),位置列表(mstr)和权重列表(wlist):
posb = ['1','2','3','4','5','6','7','8','9','10','11','12' ,'13' ]
mstr = [(u'B',4L),(u'B',9L)]
wlist = [300,500]
以下是inventory.html中车道B的相关代码行
{% for pos in posb %}
{% if pos %}
{% if "'B', "|add:pos in mstr %}
{% for wt in wlist %}
{% if wt > 700 %}
<td class="green">{{ wt }}</td>
{% endif %}
{% if 400 < wt and wt < 700 %}
<td class="blue">{{ wt }}</td>
{% endif %}
{% if 100 < wt and wt < 400 %}
<td class="yellow">{{ wt }}</td>
{% endif %}
{% if wt < 100 %}
<td class="red">{{ wt }}</td>
{% endif %}
{% endfor %}
{% else %}
<td class="gray"></td>
{% endif %}
{% else %}
<td></td>
{% endif %}
{% endfor %}
问题是此代码将根据wlist中的项目数创建超出表格单元格。请看以下链接后的图片:link text(抱歉,我的声誉不足以发布任何图片)
我长期坚持这个问题。有人可以帮忙吗?
非常感谢。
答案 0 :(得分:0)
你的if条款似乎有些低效。
你不是意味着
if 100 >= wt and wt < 400
大于
if 100 < wt and wt < 400
(等等)?
答案 1 :(得分:0)
不是在模板中执行所有逻辑,而是编写处理逻辑的函数,然后编写接收值并将它们传递给函数的custom template tag,这样更容易。