我刚到django。我想要账户和交易的功能。帐户可以有三种类型的事务处理。收入、支出和转移。它们之间都有一些共同的领域。但也有一些额外的领域。我想知道我可以做这样的模型,以便我可以访问帐户的所有交易。我还想在rest框架中使用它们。有可能吗?
from django.db import models
class Account(models.Model):
name = models.CharField(max_length=50)
balance = models.DecimalField(max_digits=7, decimal_places=1)
def __str__(self):
return self.name
class Transaction(models.Model):
amount = models.DecimalField(max_digits=7, decimal_places=1)
title = models.CharField(max_length=200)
date_created = models.DateTimeField(auto_now=True,auto_now_add=False)
account = models.ForeignKey(Account, on_delete=models.CASCADE, related_name='account')
def __str__(self):
return str(self.amount)
class Income(models.Model):
source = models.CharField(max_length=200)
transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE, related_name='transaction')
class Expense(models.Model):
category = models.CharField(max_length=200)
transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE, related_name='transaction')
class Transfer(models.Model):
to = models.ForeignKey(Account, on_delete= models.CASCADE, related_name='to')
transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE, related_name='transaction')
1条答案
按热度按时间tez616oj1#
我试着理解你的问题,我会根据我的理解来回答。
所以你的问题就好像你必须创建多个模型(账户、交易(收入、支出、转账))并在一段时间内引用这些细节(账户的交易)。
我可能会回答你的问题,你可以创建5个不同的模型,如你所说。
模型:
帐户-它是所有其他模型的父级。
事务-帐户模型的子级
收入、支出、转移-交易模型的子级
在AccountModel中,您可以创建在您提到的所有模型中使用的公共字段。它是一个主表,其中包含诸如帐号、姓名、移动电话和帐户持有人地址等列。
交易模型应该有账户模型的foreignkey引用,它应该有账户id,以及交易表中需要的其他列。
收入、支出和转移,这些模型应该有一个交易表的参考,如交易id和其他需要的东西。
所以,当您要进行金额转移时,您可能会在转移表中添加一些条目。在此之前,你应该有一个帐户。
现在想象一下,你有一个账户,你想转账,它应该有以下所有步骤:当你转账时,它会生成一个交易id,为此你需要在交易表中做一个条目,它应该参考账户持有人的详细信息。
在事务表中创建一个条目后,需要针对该事务id在传输表中创建一个条目。每当您需要访问转账详细信息时,您都会得到交易id和帐户详细信息,因为它是表的主要内容。