Python 如何在Django模型中保存()参数

Python 如何在Django模型中保存()参数,python,django,Python,Django,我正在学习Django,我决定模拟ATM。当我运行时,我的代码起作用,它说存入卡是成功的,但没有保存,原始余额保持不变。 以下是我所拥有的: models.py 分类卡(models.Model): 卡号=型号。正整数字段(主键=真) #account\u number=models.ForeignKey(account,to\u field='account\u number',on\u delete=models.CASCADE) 卡片名称=models.CharField(最大长度=30)

我正在学习Django,我决定模拟ATM。当我运行时,我的代码起作用,它说存入卡是成功的,但没有保存,原始余额保持不变。 以下是我所拥有的:

models.py

分类卡(models.Model):
卡号=型号。正整数字段(主键=真)
#account\u number=models.ForeignKey(account,to\u field='account\u number',on\u delete=models.CASCADE)
卡片名称=models.CharField(最大长度=30)
balance=models.PositiveIntegerField()
定义(自我):
返回self.card\u名称
views.py

def存款(请求):
如果request.method==“POST”:
user\u pin=request.POST.get('pin')
user\u card\u number=request.POST.get('您的卡号')
金额=request.POST.get('amount')
user\u balance=Card.objects.get(Card\u number=user\u Card\u number).balance
user\u card\u name=card.objects.get(card\u number=user\u card\u number).card\u name
#执行存款
用户\余额+=整数(金额)
Card.objects.get(Card\u number=user\u Card\u number.save())
messages.success(请求“存款成功!”+“$”+金额+”已从卡中存款:“+用户\卡\名称)
其他:
消息。错误(请求“卡号或Pin不正确”)
返回呈现(请求'deposit.html')

现在,我试着阅读save()文档并学习教程,但都不起作用。那么,在存款完成后,我如何在我的卡上保存新的余额呢?谢谢。

您不需要每次访问模型类的属性时都获取卡对象

你可以这样做

card= Card.objects.get(card_number=user_card_number)
card.balance +=int(amount)
card.save()

当您想要保存更新时。首先要做的是获取要编辑的对象

#gets user pin,balance, card name based on user's card number input
#pin_number = Card.objects.filter(card_number=user_card_number).pin  # error if use this
user_balance = Card.objects.get(card_number=user_card_number).balance  
user_card_name = Card.objects.get(card_number=user_card_number).card_name
你应该把代码改成

userCardObject = Card.objects.get(card_number=user_card_number)
然后可以更新对象内的值并保存它

userCardObject.balance += int(amount)
userCardObject.save()
您在代码上所做的只是更新user_balance的值,而不更新表中行的值(因为您不将balance列直接更新为它的对象表示形式)