在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模板中减去两个变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何减去 django 模板中的两个字段?

我如何在Django模板标签中使用模板上下文变量的值? [重复]

Django:如何遍历模板内的两个列表[重复]

Django模型基于两个变量防止重复[重复]

在数组c ++中减去两个长正整数[重复]

C# - 获取两个日期然后只减去年份[重复]