我想在django template
中实现乘法运算。例如,我有值,价格=10.50数量=3
在这个链接的帮助下
http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/
我尝试了下面的代码来实现它,
{% widthratio quantity 1 price %}
但它只返回了31但是我需要浮点数形式的答案(31.5)
我想实现它不使用手动创建的标签
我怎么才能做到呢?感谢您的评分
5条答案
按热度按时间rks48beu1#
您可以使用内置的
widthratio
模板标记。{% widthratio a 1 b %}
{% widthratio a b 1 %}
注意:返回结果前将四舍五入为整数。
@参见https://docs.djangoproject.com/en/dev/ref/templates/builtins/
kuarbcqp2#
有两种方法:
按照
add
filter的方式,您可以创建自己的multiply
filter,创建自己的自定义filter:然后在你的模板中,类似的东西应该可以工作。
这是没有测试过的,我从来没有这样做过-再次-我发现在视图中计算数据并使用模板渲染only更整洁。
2cmtqfgy3#
另一种方法,我用似乎更干净。如果您正在处理一个查询集,那么在视图中计算值是没有意义的。相反,将计算作为函数添加到模型中!
假设你的模型看起来像这样:
只需将以下内容添加到模型中:
现在你可以简单地把line_total当作记录中的一个字段:
这允许
line_total
值在任何地方使用,无论是在模板还是视图中,并确保它始终一致,而不会占用数据库中的空间。v09wglhw4#
我知道这个问题已经很久没有出现了,但是现在有一个名为django-mathfilters的库,它使Django模板中的数学运算变得更容易。你可以很容易地写
<li>42 * 0.5 = {{ answer|mul:0.5 }}</li>
来做乘法。查看https://pypi.org/project/django-mathfilters/
quhf5bfb5#
Django中的变量乘法