Как решить необычную логическую ошибку в django

Я сделал процесс транзакции, который будет проходить с помощью номера телефона. Но логика не работает правильно. сторона отправителя вычитает гораздо больше цифр, чем я хочу отправить. например, если я хочу отправить 100, он вычитает 500, а получатель не получает сумму.

может ли кто-нибудь помочь мне в этом?

models.py

class extenduser(models.Model):
    ID= models.IntegerField(null=True, default=None)
    FirstName= models.CharField(max_length= 50)
    MiddleName= models.CharField(max_length=50)
    LastName= models.CharField(max_length=50)
    phone= models.CharField(max_length=20)
    user= models.OneToOneField(User, on_delete=models.CASCADE)


class Status (models.Model):
    user_name = models.CharField(max_length=150, default=None)
    account_number = models.IntegerField()
    balance = models.IntegerField()
    phone_number= models.CharField(max_length=20,default=None)

class MoneyTransfer(models.Model):
    enter_your_user_name = models.CharField(max_length = 150, default = None)
    enter_the_destination_account_number = models.IntegerField()
    enter_the_destination_phone_number=models.CharField(max_length=20, default=None)
    enter_the_amount_to_be_transferred_in_INR = models.IntegerField()

views.py

def randomGen():
    # return a 6 digit random number
    return int(random.uniform(100000, 999999))
def index(request):
    try:
        curr_user = Status.objects.get(user_name=request.user) # getting details of current user
    except:
        # if no details exist (new user), create new details
        curr_user = Status()
        curr_user.account_number = randomGen() # random account number for every new user
        curr_user.balance = 0
        curr_user.user_name = request.user
        curr_user.phone_number= extenduser.phone
        curr_user.save()

    return render(request, "epayapp/index.html", {"curr_user": curr_user})

def TransferMoney(request):
    if request.method == "POST":
        form = forms.MoneyTransferForm(request.POST)
        if form.is_valid():
            form.save()

            curr_user = models.MoneyTransfer.objects.filter(enter_your_user_name=request.user).first()
            dest_user_acc_num = curr_user.enter_the_destination_account_number
            dest_phone_num= curr_user.enter_the_destination_phone_number

            temp = curr_user  # NOTE: Delete this instance once money transfer is done

            dest_user = models.Status.objects.get(account_number=dest_user_acc_num) 
            dest_phn= models.Status.objects.get(phone_number= dest_phone_num)
            transfer_amount = curr_user.enter_the_amount_to_be_transferred_in_INR 
            curr_user = models.Status.objects.get(user_name=request.user)  

            # Now transfer the money!
            curr_user.balance = curr_user.balance - transfer_amount
            dest_phn.balance = dest_phn.balance + transfer_amount

            curr_user.save()
            dest_user.save()

            # Save the changes before redirecting


            temp.delete()  # NOTE: Now deleting the instance for future money transactions

        return redirect(index)
    else:
        form = forms.MoneyTransferForm()
    return render(request, "epayapp/Transfer_money.html", {"form": form})

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