python - 如何循环遍历 django 中的对象字段
问题描述
我想遍历对象字段以更新它们的值,但我不太确定如何执行此操作。
class FinancePending(models.Model):
invoiceNumber = models.IntegerField
amountPaid = models.CharField(max_length=20)
AmountPending = models.IntegerField( blank=True, null=True)
TotalAmount = models.CharField(max_length=50, default=0)
现在我想计算一个函数中的amountpending。但它不工作
amount_paid = FinancePending.objects.values_list('amountPaid', flat=True)
amount_paid = list(amount_paid)
total_amount = FinancePending.objects.values_list('TotalAmount', flat=True)
total_amount = list(total_amount)
# total - paid
TotalFee = [float(s.replace(',', '')) for s in total_amount]
AmountPaid = [float(s.replace(',', '')) for s in amount_paid]
finance_pending = FinancePending.objects.all()
i = 0
while i < len(TotalFee):
amount_pending = TotalFee[i] - AmountPaid[i]
FinancePending.objects.filter(invoiceNumber=i).values(AmountPending=amount_pending)
setattr(finance_pending, 'AmountPending', str(amount_pending))
i = 1 + i
解决方案
建议使用Query Expression,更强大和健壮
推荐阅读
- ecdsa - 使用 Google Cloud Key Management Service 签署以太坊交易
- azure - Azure Powershell DevOps Task 与 Azure 中国对话时出现问题
- php - 意外数据发现日期格式?
- r - 如何在 geom_raster 中设置一个常量“ylim”?
- flutter - 如何使用提供者更新具有多个实例的类?
- version-control - 微服务和版本控制如何处理部署
- google-cloud-platform - 删除克隆新服务器的快照是否会导致服务器崩溃?
- java - 如何使用 java WebDriver 在 Firefox 中打开“about:preferences”
- swift - 如何在 CognitoAuth - Swift 中制作 globalSignOut?
- microsoft-graph-api - 同步特定邮件文件夹中的消息时持续出现“503 UnknownError”(通过增量)