我有两个模型账单和付款,每个模型都有 3 个字段。在这里,我想在用户支付账单时直接更新字段 last_price。如果用户支付全部金额,那么它将为 0。或者如果用户没有支付全部金额,则剩余金额希望保存在 last_price 中。所以在这里我想在用户支付账单时直接更新 last_bill 的金额。
注意:两种型号都在单独的应用程序中
我的领域是:
BillApp/模型
Bill(model.Model):
bill_no = models.IntegerField(max_length = 100,primary_key=True)
last_price = models.IntegerField()
Name = models.CharField(max_length = 20)
支付应用程序/模型
Payment(model.Model):
id = models.CharField(max_length = 100,primary_key=True)
bill_no = models.ForeignKey(Bill, on_delete = SET_NULL,null=True)
total_amount = models.CharField(max_length = 10)
def save(...):
Update value of Bill.last_price
如何在保存方法中更新 Bill.last_price 的值
我试过这个更新字段 last_price
def save(self,*args, **kwargs):
new_last_price = self.total_amount - self.bill_no.last_price
print("new_last_price : ",new_last_price)
bill_detail = Bill.objects.filter(bill_no=self.bill_no).first()
print("bill_detail : ",bill_detail)
try:
with transaction.atomic():
updated_field = bill_detail.save(update_fields = ['last_price'])
print("updated_field : ", updated_field)
super().save(*args, **kwargs)
print(Bill.objects.filter(bill_no=self.bill_no).first().last_price)
except IntegrityError:
print('Exception in save')
我得到了 new_last_price 和 bill_detail 的正确输出.. 但updated_field 显示 None .. 如何在 Bill 中保存新值?