我想计算客户端的总余额,我用def做了这个类,但是它只计算一个客户端,我想创建一个def来计算我所有客户端的client_balance
总数
class ClientsBalance(models.Model):
client = models.OneToOneField(Client, on_delete=models.CASCADE,related_name='Client')
def sales(self):
invoices = self.client.invoice_set.all()
sales_amount = 0
for invoice in invoices:
sales_amount += invoice.amountDuettc()
return sales_amount
def clientpayment(self):
invoices = self.client.invoice_set.all()
clientpayment = 0
for invoice in invoices:
clientpayment += invoice.amount_paid()
return clientpayment
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
首先,函数中有一个输入错误,使得每次迭代都覆盖
invoice_balance
这将根据需要返回总和:
第二,如果需要,您可以合并您的逻辑,因为您始终使用相同的查询集,例如:
您当前的逻辑正在返回最后一个客户端的余额。在每次迭代中,发票余额覆盖上一个值
试试这个。 初始化空字典并在每次迭代中追加字典:
这将返回一个字典,其中包含每个客户端的发票余额
相关问题 更多 >
编程相关推荐