2016-8-3 周三 做項目時遇到的問題: 每個div由迴圈變數輸出: {% for key,value in formextenddetail %} <div id="div_id_notes" class="value form-group row"> <div class="control- ...
2016-8-3 周三
做項目時遇到的問題:
每個div由迴圈變數輸出:
{% for key,value in formextenddetail %}
<div id="div_id_notes" class="value form-group row">
<div class="control-label">{{ key }}</div>
<div class="controls"><p class="form-control-static "><span class="text-muted"><font color="black">{{ value }}</font></span></p></div>
</div>
{% endfor %}
但是我想兩個div一行,使用
<table>
<tr>
<td><div></div></td>
<td><div></div></td>
</tr>
...
</table>
這種樣子
因為我負責的是前端,views這些不是很熟悉,想在template里直接控制,搜一下發現居然還不用直接用乘除或者mod計算,囧。
參考文章:http://blog.csdn.net/rain_qingtian/article/details/41076151
容易知道,Django模版加法:
{{ value|add: 10 }} |
value=5,則返回15 Django模版減法:
{{value|add: - 10 }} |
value=5,則返回-5,這個比較好理解,減法就是加一個負數 Django模版乘法:
{ % widthratio 5 1 100 % } |
上面的代碼表示:5/1 *100,返回500,widthratio需要三個參數,它會使用 參數1/參數2*參數3,所以要進行乘法的話,就將參數2=1即可 Django模版除法
{ % widthratio 5 100 1 % } |
上面的代碼表示:5/100*1,返回0.05,只需要將第三個參數設置為1即可。
但是這些方法用在除餘很麻煩。
解決方案:divisibleby標簽!
用django的divisibleby標簽實現,如下:
{% for each in somelist %}
{% if forloop.counter|divisibleby:2 %}
<div class=”class1″></div>
{% else %}
<div class=”class2″></div>
{% endif %}
{% endfor %}
divisibleby標簽的意義是用後面的參數去除,除盡為True,否則為False。
所以,我的代碼改為:
<table class="col-sm-12">
{% for key,value in formextenddetail %}
{% if forloop.counter|divisibleby:'2' %}
<td style="width: 50%" >
<div id="div_id_notes" class="value form-group row">
<div class="control-label">{{ key }}</div>
<div class="controls"><p class="form-control-static "><span class="text-muted"><font color="black">{{ value }}</font></span></p></div>
</div>
</td>
</tr>
{% else %}
<tr>
<td style="width: 50%" >
<div id="div_id_notes" class="value form-group row">
<div class="control-label">{{ key }}</div>
<div class="controls"><p class="form-control-static "><span class="text-muted"><font color="black">{{ value }}</font></span></p></div>
</div>
</td>
{% endif %}
{% endfor %}
</table>
這個解決方案同樣可以用在換行變樣式的情況等!