我有一个案例,我必须首先从一个对象实例获取一个值,然后将其与另一个值相乘,然后从原始值中减去一些其他值。如果我使用多个过滤器可以吗?这是我查询的快速演示。
我在template_filters.py
中有以下过滤器:
1) add():
2) subtract():
3) multiply():
4) calculate_emi():
我正在做以下操作。假设贷款是一个对象实例:
{{ loan|calculate_emi|multiply:loan.duration|subtract|paid_emi }}
使用这种级联滤波器是否可以?如果还有其他更好的方法,请建议。
答案 0 :(得分:0)
我过去遇到过这种类型的问题。当您使用多个过滤器时,它会变得非常混乱。
解决方案可以是声明模型函数。只有在不依赖于其他模型的属性时才能执行此操作。
示例:
class Loan(models.Model):
duration = models.IntegerField()
emi = models.IntegerField()
def duration_times_emi(self):
return self.duration * self.emi
可以在模板中的模型实例上调用此函数:
{{ loan.duration_times_emi }}
同样,如果您可以访问贷款模型级别所需的所有变量,这将对您有用。