【Django+Python3.6+Win】家計簿アプリを作る Part.002
早速ですが、昨日からアプリ作成始めたので、進捗兼自分用メモ。
なお、単なる家計簿アプリではなく、制度会計・簿記的なアプリを目指している。
各月の実績をPLやBSベースで表示させたい。
なので、仕訳の概念などを取り入れている。
また、プログラム関連の知識は初心者に毛が生えた程度のレベルなので生暖かい目で見守ってください。。。
6月9日
Created two models:
・AccountMaster(勘定科目マスタ)
・JE(仕訳保存用、仕訳日記帳的なものを想定している。)
templateの作成は、下記の記事を参考にしました。
https://qiita.com/kaki_k/items/6e17597804437ef170ae
6月10日
昨日作成したモデルはそれぞれが独立したモデルであった。
しかし、仕訳格納モデルの借方、貸方勘定科目は、勘定科目マスタモデルと紐づけたい。
そのため、仕訳格納モデルの一部にForeignKeyを設定。
一度DBの基礎的な設計の仕方を学んだ方がいいんだろうなぁ…。
コメントアウトしてあるところは、昨日作成のモデルから削った部分。
model.pyclass AccountMaster(models.Model): account_code = models.IntegerField(default = 0) account_name = models.CharField(max_length=20) sub_account_code = models.IntegerField(default = 0) sub_account_name = models.CharField(max_length=20) account_type = models.CharField(max_length=20) optional = models.CharField(max_length=20) # define the display name in admin below def __str__(self): return u'%s' % (self.account_name) class JE(models.Model): je_date = models.DateTimeField(default = timezone.now()) # debit_account_code = models.IntegerField(default = 0) # debit_account_name = models.CharField(max_length=20) # debit_sub_account_code = models.IntegerField(default = 0) # debit_sub_account_name = models.CharField(max_length=20) debit_account_master = models.ForeignKey('AccountMaster', related_name='debit_account_master', on_delete=models.CASCADE) debit_description_first = models.CharField(max_length=50) debit_description_second = models.CharField(max_length=50) debit_amount = models.IntegerField(default = 0) # credit_account_code = models.IntegerField(default = 0) # credit_account_name = models.CharField(max_length=20) # credit_sub_account_code = models.IntegerField(default = 0) # credit_sub_account_name = models.CharField(max_length=20) credit_account_master = models.ForeignKey('AccountMaster', related_name='credit_account_master', on_delete=models.CASCADE) credit_description_first = models.CharField(max_length=50) credit_description_second = models.CharField(max_length=50) credit_amount = models.IntegerField(default = 0)
また、Formをプルダウンなどに変えた。
下記サイトが大いに参考になった。
https://eiry.bitbucket.io/tutorials/guest_board/models.html
仕訳入力画面はこんな感じ
次はJE modelから勘定科目別の金額集計を考えよう。
書いていて思ったが、完全に自分用のメモ書きとなっている。
以上