Django不支持instancemethod和decimal的操作数类型

时间:2013-09-12 19:33:27

标签: django methods model

我有一个模型函数,它调用另一个模型函数并使用结果执行计算。返回的结果应该是小数,但是我收到错误:

unsupported operand type(s) for -: 'instancemethod' and 'Decimal'

我已经尝试Decimal()来转换返回但是导致了相同的错误,但是说我无法将instancemethod转换为decimal。

相关代码是:

cimt = member.cimt

bal = cimt - cpp

if bal == 0:
    pass
elif bal < 0:
    owes_members.append(member)
elif bal > 0:
    owed_members.append(member)
    record_item = ReceiptItem(member = member, amount = bal)
    record_item.save()
    print record_item.amount

发生错误的行是bal = cimt - cpp

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

由于错误告诉您正在尝试使用模型方法执行计算,而不是调用方法的结果。它应该是:

cimt = member.cimt()

或者用你需要的任何参数调用。

您可以按名称访问和操作方法,就像对象上的任何其他内容一样;你需要用括号来实际调用它。