2 回答
TA贡献1876条经验 获得超7个赞
Account.deposit(amount) 这里 Account 是 class 。您需要在此类的实例上调用 deposit 方法,例如。
account = Account.objects.get(id=1)
account.deposit(amount)
TA贡献1770条经验 获得超3个赞
您deposit()需要两个参数 - 类实例和数量。所以需要先创建Account实例,然后使用方法。此外,由于您没有返回更新的金额,您可以save()在方法本身内部调用方法。
class Account(models.Model):
...
def deposit(self, amount):
self.account_amount = self.account_amount + amount
self.save()
return
您需要先调用deposit实例。
# views.py
@login_required
def deposit(request):
if request.method == 'POST':
form = UserDepositForm(request.POST)
if form.is_valid():
amount = request.POST['amount']
print(amount)
account = form.save(commit=False) #no commit in DB
account.deposit(amount) # use class instance
messages.success(request, f'The amount has been deposited into your account!')
return redirect('ABT-my_accounts')
else:
form = UserDepositForm(instance=request.user)
return render(request, 'automatedbankteller/deposit.html', {'form': form})
您也可以从该deposit方法返回更新后的金额,但您需要save()自己调用。
添加回答
举报