Как решить необычную логическую ошибку в 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})