在django模板中减去两个变量[重复]
Posted
技术标签:
【中文标题】在django模板中减去两个变量[重复]【英文标题】:Subtracting two variables in django template [duplicate] 【发布时间】:2015-05-03 23:05:27 【问题描述】:我必须在 django 模板中减去两个值。我该怎么做?
obj.loan_amount - obj.service_charge
【问题讨论】:
它包括像 myval|add:"-5" 这样的减法。但在这里我打算进行变量减法。 在我上面的链接中,您可以创建自己的过滤器...但为什么不在视图中这样做呢? 【参考方案1】:有两种方法可以做到这一点。
1) 更优选的方式(基于业务逻辑和模板逻辑的分离),是在views.py 中计算您尝试执行的操作,然后通过上下文传递值。例如:
class FooView(View):
def get(self, request, *args, **kwargs):
obj = Foo.objects.get(pk=1)
obj_difference = obj.loan_amount - obj.service_charge
return render(request, 'index.html', 'obj': obj,
'obj_difference': obj_difference)
这将允许您在模板中直接使用 obj_difference
。
2) 第二种不太理想的方法是使用模板标签。
@register.simple_tag(takes_context=True)
def subtractify(context, obj):
newval = obj.loan_amount - obj.service_charge
return newval
这将允许您在模板中使用% subtractify obj %
。
注意:如果您使用方法 #2,请不要忘记在 HTML 文件的顶部使用 % load [tagname] %
。
【讨论】:
很好的答案,除了你不会在加载标签中使用“py”扩展名。以上是关于在django模板中减去两个变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章