2016-8-3 周三
做项目时遇到的问题:
每个div由循环变量输出:
{% for key,value in formextenddetail %}
{{ key }}
{{ value }}
{% endfor %}
但是我想两个div一行,使用
...
这种样子
因为我负责的是前端,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模版乘法:
{% widthratio5 1 100 %}
上面的代码表示:5/1 *100,返回500,widthratio需要三个参数,它会使用 参数1/参数2*参数3,所以要进行乘法的话,就将参数2=1即可 Django模版除法
{% widthratio5 100 1 %}
上面的代码表示:5/100*1,返回0.05,只需要将第三个参数设置为1即可。
但是这些方法用在除余很麻烦。
解决方案:divisibleby标签!
用django的divisibleby标签实现,如下:
{% for each in somelist %}
{% if forloop.counter|divisibleby:2 %}
{% else %}
{% endif %}
{% endfor %}
divisibleby标签的意义是用后面的参数去除,除尽为True,否则为False。
所以,我的代码改为:
{% for key,value in formextenddetail %}
{% if forloop.counter|divisibleby:'2' %}
{{ key }}
{{ value }}
{% else %}
{{ key }}
{{ value }}
{% endif %}
{% endfor %}
这个解决方案同样可以用在换行变样式的情况等!