python
from django.db import models
class Account(models.Model):
account_name = models.CharField(max_length=100)
balance = models.DecimalField(max_digits=20, decimal_places=2)
creation_date = models.DateField()
def __str__(self):
return self.account_name
class Stock(models.Model):
stock_symbol = models.CharField(max_length=10)
stock_name = models.CharField(max_length=100)
def __str__(self):
return self.stock_name
class Transaction(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE)
stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
transaction_date = models.DateField()
transaction_type = models.CharField(max_length=4, choices=(('BUY', '매수'), ('SELL', '매도')))
quantity = models.IntegerField()
price = models.DecimalField(max_digits=20, decimal_places=2)
def __str__(self):
return f'{self.account.account_name} - {self.stock.stock_name} - {self.transaction_type}'
class Profit(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE)
stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
total_invested = models.DecimalField(max_digits=20, decimal_places=2)
total_return = models.DecimalField(max_digits=20, decimal_places=2)
profit_date = models.DateField()
def __str__(self):
return f'{self.account.account_name} - {self.stock.stock_name}'
class Dividend(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE)
stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
dividend_amount = models.DecimalField(max_digits=20, decimal_places=2)
dividend_date = models.DateField()
def __str__(self):
return f'{self.account.account_name} - {self.stock.stock_name}'
위의 코드에는 5개의 모델이 포함되어 있으며, 각 모델은 데이터베이스 테이블에 매핑됩니다. ForeignKey를 사용하여 모델 간의 관계를 정의하였고, __str__ 메서드를 사용하여 객체의 문자열 표현을 정의했습니다.
이제, 이 모델들을 관리할 Django admin 패널이나 다른 로직을 추가하여 완전한 백엔드 서버를 구축하실 수 있습니다. 추가적인 도움이 필요하시면 언제든지 말씀해 주세요! 😊