Почему я всегда получаю сообщение о недостаточности средств, даже если сумма, которую я снимаю, меньше моего баланса?

Я хотел показать пользователю сообщение "недостаточный баланс", когда сумма, которую он хочет снять, больше доступного баланса, но сообщение появляется даже тогда, когда сумма, которую он хочет снять, меньше. В чем именно здесь проблема?

def create_withdrawal_view(request):
    if request.method == 'POST':
        withdraw_form = InvestmentForm(request.POST)
        if withdraw_form.is_valid():
            investment = withdraw_form.save(commit=False)
            if investment.amount > investment.balance:
                messages.success(request, 'insufficient funds')
            else:
                investment.balance -= investment.amount
                investment.save()
                messages.success(request, 'your Withdrawal is successfull')
    else:
        withdraw_form = InvestmentForm()
    context = {'withdraw_form': withdraw_form}
    return render(request, 'create-withdrawal.html', context)

Полагаю, что здесь вы используете неверные данные:

def create_withdrawal_view(request):
    if request.method == 'POST':
        withdraw_form = WithdrawalForm(request.POST)
        if withdraw_form.is_valid():
            investment = withdraw_form.save(commit=False)
            if investment.balance < withdraw_form.withdraw_amount:
                messages.success(request, 'insufficient funds')
            else:
                investment.balance -= withdraw_amount.withdraw_amount
                investment.save()
                messages.success(request, 'investment successful')
    else:
        withdraw_form = WithdrawalForm()
    context = {'withdraw_form': withdraw_form}
    return render(request, 'create-withdrawal.html', context)

Вы должны подтвердить данные вашей формы withdraw_form.withdraw_amount. не instance.balance.

Вернуться на верх