Обновлять баланс после вывода средств и пополнять счет с помощью приложения Python Django - PullRequest
0 голосов
/ 01 октября 2019

Я все еще новичок в django, и я учусь, пытаясь создать учетную запись веб-банка, как приложение. Я создал приложение пользователя и приложение банка в своем проекте.

в моем приложении для пользователей есть такие модели, как профиль пользователя, данные учетной записи пользователя и учетная запись пользователя. Модель учетной записи пользователя предназначена для хранения текущего баланса пользователя.

в банковском приложении, у меня есть такие модели, как депозит и снятие средств, в этих моделях есть данные о сумме вклада или вывода, дате и времени вывода.

Вот моя модель учетной записи пользователя

from django.db import models
from django.contrib.auth.models import User

class UserAccount(models.Model):
    class Meta:
        verbose_name = 'UserAccount'
        verbose_name_plural = 'UserAccounts'
    MAX_BALANCE = 10000000.00
    MIN_BALANCE = 0.00

    MAX_DEPOSIT = 2000000
    MIN_DEPOSIT = 10000

    MAX_WITHDRAW =  1000000
    MIN_WITHDRAW =  10000

    MAX_PORTFOLIO = 2000000
    MIN_PORTFOLIO = 10000

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    created = models.DateTimeField(blank=True, null=True)
    modified = models.DateTimeField(blank=True, null=True)
    account_balance = models.PositiveIntegerField(verbose_name ='Current balance', default=0)


    def __str__(self):
        return f'{self.user.username} Account'

, тогда это модель депозита, которую я создал в банковском приложении

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse


class MakeDeposit(models.Model):


    MAX_DEPOSIT = 2000000
    MIN_DEPOSIT = 10000

    DEPOSIT_STATUS_PENDING = 'PENDING'
    DEPOSIT_STATUS_APPROVED = 'APPROVED'
    DEPOSIT_STATUS_DENIED = 'DENIED'

    DEPOSIT_STATUS_CHOICES = ((DEPOSIT_STATUS_PENDING, 'Pending'), (DEPOSIT_STATUS_APPROVED, 'Approved'), (DEPOSIT_STATUS_DENIED, 'Denied'),)


    amount = models.PositiveIntegerField()
    date_deposited = models.DateTimeField(default=timezone.now)
    status = models.CharField(max_length=30, choices=DEPOSIT_STATUS_CHOICES,default='Pending')
    dep_proof = models.ImageField(upload_to='deposit_proofs')
    user = models.ForeignKey(User, on_delete=models.CASCADE)


    def __str__(self):
        return f'{self.user.username} Deposit'

    def get_absolute_url(self):
        return reverse('dashboard')

У меня есть формы на панели пользователяэто открывается, когда пользователь нажимает на депозит. пользователь может ввести сумму для внесения депозита и отправить форму

, тогда у меня есть шаблон, который отображает баланс учетной записи пользователя, как этот

<p class="main-text">Balance: # <span>{{user.useraccount.account_balance}}</span></p>

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

, поскольку этот аккаунт пользователя всегда отображает 0

я пытался добавитьэта функция

def deposit(self):
        amount = self.cleaned_data.get('amount')
        user.useraccount.account_balance += deposit_amount

в классе MakeDeposit, но ничего не меняется.

Я искренне надеюсь, что смогу получить помощь. заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...