在django模板中将字符串转换为整数

时间:2018-04-29 21:31:40

标签: django django-models django-templates

我在尝试在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

2 个答案:

答案 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)