python - 如何在 Django 模型中保存()参数
问题描述
我正在学习 Django,我决定模拟一个 ATM。当我运行时,我的代码工作,它说存款成功,但它没有保存它,原始余额保持不变。这是我所拥有的:
models.py
class Card(models.Model):
card_number = models.PositiveIntegerField(primary_key=True)
#account_number = models.ForeignKey(Account, to_field='account_number',on_delete=models.CASCADE)
card_name = models.CharField(max_length=30)
balance = models.PositiveIntegerField()
def __str__(self):
return self.card_name
views.py
def deposit(request):
if request.method == 'POST':
user_pin = request.POST.get('Pin')
user_card_number = request.POST.get('Your Card Number')
amount = request.POST.get('Amount')
user_balance = Card.objects.get(card_number=user_card_number).balance
user_card_name = Card.objects.get(card_number=user_card_number).card_name
# performs deposit
user_balance += int(amount)
Card.objects.get(card_number=user_card_number).save()
messages.success(request, 'Deposit Success! ' + '$'+ amount + ' has been depositted from card: ' + user_card_name)
else:
messages.error(request, 'Card Number or Pin is incorrect')
return render(request, 'deposit.html')
现在,我尝试阅读 save() 文档并按照教程进行操作,但它们不起作用。那么,如何在存款完成后将新余额保存在我的卡上?谢谢你。
解决方案
每次要访问模型类的属性时,都不需要获取 Card 对象。
你可以做这样的事情
card= Card.objects.get(card_number=user_card_number)
card.balance +=int(amount)
card.save()
推荐阅读
- python - 我如何知道我的预测分类的标签?
- powershell - 基于小时和分钟的Powershell搜索文件?
- c# - 如何将按年排序的内容写入文本文件
- json - PowerShell ConvertFrom-Json 忽略顶级数组?
- php - PHP - 如何检查输入过滤器是否有效?
- windows - CMD的帮助文件存放在Windows的什么位置
- php - Select2 在引导模式中未正确显示
- python - Pip 安装 psycopg2 失败
- reporting-services - SSRS 报告在第 1 页后呈现不同
- c# - 当用户单击列表中的项目时,如何从 Sharepoint 中检索项目 ID?