
{{ 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 |