{{ info.number * info.price }}
{% if info.status == 'ERROR' || info.status == 'FAIL' %}
<span class="label label-danger">{% trans 'FAIL' %}</span>
{% endif %}
跪求 怎么在 diango 的 template 进行 加减乘除
还有执行 ||
呢?
1
cxbig 2015-12-22 16:39:03 +08:00
理论上讲, tpl 只处理简单逻辑,计算的工作提取数据的时候就做好。
|
2
restran 2015-12-22 16:51:11 +08:00
用 jinja2
|
3
jmc891205 2015-12-22 16:53:02 +08:00
|| 可以用 or: {% if foo1 or foo2}
|
4
FrankFang128 2015-12-22 16:53:36 +08:00
别
|
5
kidblg 2015-12-22 17:01:16 +08:00
用 tags 。比如{{ info.number|add:info.price }} 啥的。
https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/ 不过跟 1 楼一样,还是建议在 views 里处理逻辑,不要让 template 变得臃肿,毕竟它是主要负责渲染,不是处理逻辑。 |
6
tiant167 2015-12-22 17:01:55 +08:00
django 的设计觉得计算之类的复杂逻辑应该放到 view 里算。模版只是渲染用。如果想在模版里计算就用 jinjia 吧
|
7
shooter OP @FrankFang128 是啥么意思
@jmc891205 哦耶, get it @restran 这是是 模板引擎的节奏么 臣妾做不了主啊 :cry: @cxbig `只处理简单逻辑`, 我感觉 进行一些计算是 简单的逻辑啊 :cry: 我的使用姿势不对么, 囧 |
8
felixzhu 2015-12-22 17:13:34 +08:00
强烈建议替换成 Jinja2
django 的设计原则之一就是 template 只做展示 |
9
shooter OP |
10
neoblackcap 2015-12-22 17:14:16 +08:00
@shooter 模板简直应该只复杂渲染,减少副作用
|
11
tiant167 2015-12-22 17:33:46 +08:00
@shooter 每个人对模版的理解和想法不太一样~选择一个自己喜欢的就好~ Django 的模版是**想**设计给写界面( HTML )的人使用,而不是写业务代码的后端程序员~ 现在 Django 加了对 jinjia 的支持也是因为大家对这块都有争议和自己的想法啦
|
12
crayonyi 2015-12-22 17:46:16 +08:00
用自定义的 tag ,或者改用 jinjia 模板
|
13
idblife 2015-12-22 18:04:56 +08:00
不建议在模板里进行计算
|
14
latyas 2015-12-23 02:14:56 +08:00
django 的模板略坑, QJ 程序员要符合它的 MVT 设计理念,然而会有程序员愿意被 QJ 么?建议换 jinja2
|
15
shooter OP |
16
shooter OP 人生苦短, 学习 python.
我感觉 django 给这个说法 -1, py 粉不要削我, 我只是工具使用者. #赶紧逃# |
17
dododada 2015-12-23 15:31:31 +08:00
可以在 view 中写个 filter , template 中的使用方法和 tags 类似
|
18
iwillhappy1314 2015-12-23 21:30:29 +08:00
有个包: django-mathfilters
|