2 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
Account.deposit(amount) 這里 Account 是 class 。您需要在此類的實(shí)例上調(diào)用 deposit 方法,例如。
account = Account.objects.get(id=1)
account.deposit(amount)

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
您deposit()需要兩個(gè)參數(shù) - 類實(shí)例和數(shù)量。所以需要先創(chuàng)建Account實(shí)例,然后使用方法。此外,由于您沒有返回更新的金額,您可以save()在方法本身內(nèi)部調(diào)用方法。
class Account(models.Model):
...
def deposit(self, amount):
self.account_amount = self.account_amount + amount
self.save()
return
您需要先調(diào)用deposit實(shí)例。
# 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()自己調(diào)用。
添加回答
舉報(bào)