Я все еще новичок в 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, но ничего не меняется.
Я искренне надеюсь, что смогу получить помощь. заранее спасибо.