0

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

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

我尝试Decimal()将返回值转换,但这导致了相同的错误,但说我无法将 instancemethod 转换为十进制。

相关代码为:

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

任何帮助将不胜感激,谢谢。

4

1 回答 1

1

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

cimt = member.cimt()

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

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

于 2013-09-12T19:45:13.930 回答