我对django还是陌生的,我正在通过尝试建立一个像app这样的网络银行帐户来学习。我在项目中创建了一个用户应用程序和一个银行应用程序。
在我的用户应用程序中,我具有诸如用户个人资料,用户帐户详细信息和用户帐户之类的模型。用户帐户模型旨在存储用户的当前帐户余额。
在银行应用程序中,我有诸如存款和取款之类的模型,这些模型具有存款或取款金额,取款日期和时间的详细信息。
这是我的用户帐户模型
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类中,但没有任何变化。
我衷心希望我能得到帮助。预先感谢。