擅长:python、mysql、java
<p>首先,函数中有一个输入错误,使得每次迭代都覆盖<code>invoice_balance</code></p>
<p>这将根据需要返回总和:</p>
<pre><code>def client_balance(self):
items = self.client.invoice_set.all()
invoice_balance = 0
for item in items:
invoice_balance += (self.sales()) - (self.clientpayment()) + (item.client.initialBalance)
return invoice_balance
</code></pre>
<p>第二,如果需要,您可以合并您的逻辑,因为您始终使用相同的查询集,例如:</p>
<pre><code>def calculations(self):
queryset = self.client.invoice_set.all()
sales_amount = 0
clientpayment = 0
invoice_balance = 0
for client in queryset:
sales_amount += client.amountDuettc()
clientpayment += client.amount_paid()
invoice_balance += client.amountDuettc() - client.clientpayment() + client.client.initialBalance()
context = {
'sales_amount': sales_amount,
'clientpayment': clientpayment,
'invoice_balance': invoice_balance
}
return context
</code></pre>