1.6 モデルクラスの作成(DJango 2.2.7) [Django]
前回説明を飛ばしたモデルの説明をしたいと思います。
◆クラス名は下記にしました。
判定マスタ:M_Judgmentクラス
応募経路マスタ:M_Appl_Routeクラス
業務経歴マスタ:M_Work_Historyクラス
部マスタ:M_Departmentクラス
応募者情報:T_Applicant_infoクラス
判定テーブル:T_Judgmentクラス
ER図
◆各列情報を定義するフォーマットは下記となります。
列名 = データ型(データ型に対するパラメータ指定)
データ型、AutoField, ForeignKey, CharField, DateFieldなど様々なものがあります。
詳細は他のサイトでお願いします。
◆全部説明するのもあれなので判定テーブルだけ説明します。
判定テーブル(T_Judgmentクラス)
1.判定テーブルキー列(key_judgment)
プライマリキーで自動で値が割振られる列となります。
2.部INDEX列(key_department)
部マスタ(M_Department)をカスケードしているのでパラメータにクラス名を指定している。
on_delete=models.PROTECTは、参照しているデータが存在していたら削除できない指定。
3.応募者情報キー列(key_applicant)
応募者情報(T_Applicant_info)をカスケードしているのでパラメータにクラス名を指定している。
on_delete=models.CASCADEは、参照しているデータが存在していたら一緒に削除される指定。
4.優先順番列(judgment_index)
三つの部を登録する仕様なので、必然的に1~3までとなるので
choicesパラメータをしている。(12行目)
こうする事により、画面側では、1~3のコンボボックスをDJangoが表示してくれます。
5.判定列(judgment)
判定マスタ(M_Judgment)をカスケードしているのでパラメータにクラス名を指定している。
全てのmodelは下記を参照。
https://github.com/MakotoPlus/PycharmProjects3/blob/master/Recruitment/applicantctl/models.py
◆クラス名は下記にしました。
判定マスタ:M_Judgmentクラス
応募経路マスタ:M_Appl_Routeクラス
業務経歴マスタ:M_Work_Historyクラス
部マスタ:M_Departmentクラス
応募者情報:T_Applicant_infoクラス
判定テーブル:T_Judgmentクラス
ER図
◆各列情報を定義するフォーマットは下記となります。
列名 = データ型(データ型に対するパラメータ指定)
データ型、AutoField, ForeignKey, CharField, DateFieldなど様々なものがあります。
詳細は他のサイトでお願いします。
◆全部説明するのもあれなので判定テーブルだけ説明します。
判定テーブル(T_Judgmentクラス)
1.判定テーブルキー列(key_judgment)
プライマリキーで自動で値が割振られる列となります。
2.部INDEX列(key_department)
部マスタ(M_Department)をカスケードしているのでパラメータにクラス名を指定している。
on_delete=models.PROTECTは、参照しているデータが存在していたら削除できない指定。
3.応募者情報キー列(key_applicant)
応募者情報(T_Applicant_info)をカスケードしているのでパラメータにクラス名を指定している。
on_delete=models.CASCADEは、参照しているデータが存在していたら一緒に削除される指定。
4.優先順番列(judgment_index)
三つの部を登録する仕様なので、必然的に1~3までとなるので
choicesパラメータをしている。(12行目)
こうする事により、画面側では、1~3のコンボボックスをDJangoが表示してくれます。
5.判定列(judgment)
判定マスタ(M_Judgment)をカスケードしているのでパラメータにクラス名を指定している。
#判定テーブル class T_Judgment(models.Model): # CONST_JUDGMENT_INDEX = (( 1, '1'), (2, '2'), (3, '3')) #判定テーブルキー key_judgment = models.AutoField(primary_key=True) #部INDEX key_department = models.ForeignKey(M_Department, null=False, on_delete=models.PROTECT, verbose_name='本部') #応募者情報キー key_applicant = models.ForeignKey(T_Applicant_info, null=False, on_delete=models.CASCADE, verbose_name='応募者情報Key') #優先順番 judgment_index = models.IntegerField(null=False, verbose_name='優先順位', choices=CONST_JUDGMENT_INDEX) #判定 judgment = models.ForeignKey(M_Judgment, null=True, on_delete=models.PROTECT, verbose_name='面談実施判定') #更新者 u_user = models.CharField(max_length=100, verbose_name='更新者') #更新日 u_date = models.DateTimeField(verbose_name='更新日時',auto_now=True) def __str__(self): return str(self.key_judgment)
全てのmodelは下記を参照。
https://github.com/MakotoPlus/PycharmProjects3/blob/master/Recruitment/applicantctl/models.py
- ショップ: 楽天ブックス
- 価格: 3,300 円
コメント 0