ryotankの備考録日記

趣味の電子工作についての備考録などなど

電子工作作業報告書管理アプリその50

model.pyを作り込む

テーブル正規化からewrn2のデータ型を決め、

f:id:ryotank:20220210120605p:plain
ewrn2のテーブル正規化
f:id:ryotank:20220210120632p:plain
テーブル正規化からデータ型を決める

テーブル定義書にデータ型をハメ込んでいく

f:id:ryotank:20220210164900p:plain
ewrn2_のテーブル定義書_正規版

ewrn2のテーブル定義書を使いmodelを作り込む

モデル名は、Ewrn2でtask_name, class_name, work_details,
what_i_noiced, remarks, situation_pthoto, work_day,
use_of_tools, used_software, uesd_parts, registraion_date, work_points
の12個のフィールドを持ったモデルを定義する

モデル作成のルールに基づいて、モデル名は大文字で始める


フィールドの定義の仕方

フィールド名 = models.フィールドの型(フィールドオプション)

という形で定義する

task_nameを例にすると扱うデータはTEXT文字列なので
フィールドの型は、"CharField", 最大文字数のmax_lengthは100
max_lengthの上限は255文字まで 入力を必須にするのでblankをtrue(真)に

task_name = models.CharField(blank=Ture, max_length=100)

work_detailsの場合だと定義書によると、データ型の文字数を2000桁にしているが
長い文字列を保持するのでTextField、またmax_lengthの指定の必要が無いので記述しない

HTMLの出力はtextareaタグになる

work_details = models.TextField(blank=Ture)

文字数のケタが多くなるものはTextFieldに

registraion_dateは、データを登録完了した日付と時刻になる為
DateTimeFieldというフィールド

situation_pthoto(状況写真)は画像をアップロードする為
ImageFieldというフィールドが適している。
ImageFieldは画像アップロード時にチェックを行うので便利

work_day(作業日)は、日付データを保存する為のフィールドが適しているので
DateFieldになる

このようにModel作成をしていく

次回はModelを作成しマイグレーションファイルの生成を行う