我在尝试在django模板中乘以下面时遇到错误(乘法是自定义标记) -
{{ contact.cost|add:"0" |multiply:contact.rate }}
cost是varchar类型,rate是models.py中的decimal类型。我试着添加:" 0"首先将字符串转换为整数然后再乘以但它仍然给出错误。
can't multiply sequence by non-int of type 'decimal.Decimal'
有什么问题? django还是一个新手,请帮忙。
编辑 -
def multiplystr(x, y):
val = Decimal(x)
return Decimal(val * y)
错误 -
[<class 'decimal.ConversionSyntax'>]
InvalidOperation
答案 0 :(得分:0)
Django内置的东西没有将字符串转换为整数。
您最好的办法是在视图中修复此问题(修复以使contact.cost
为整数)或在自定义multiply
函数中修复它,以便它可以处理字符串。
下面的内容应该有效
def multiply(value, arg):
value_as_int = int(value)
return int(value_as_int * arg)
答案 1 :(得分:0)
试试这个:
def multiplystr(x, y):
valX = Decimal(x)
valY = Decimal(y)
return Decimal(valX * valY)