ryotankの備考録日記

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

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

気分転換にフォーム画面を作成しようと思う

Djnagoのフォーム画面を作るには
「ModelFormクラス」による作成をする

あらかじめ「モデル(データベースにおけるテーブル)があると
「ModelFormクラス」を利用するとフォーム画面が構築しやすいのがメリット

今回は事前にewrnという名前のアプリを作成し、
下記のようにlistとdataのテンプレートを用意してある前提で説明をしていく

└ewrn
   ├templates
    └user
	  ├list.html
	  └data.html

アプリの概要
 下記のモデルによるテーブルに登録出来るフォーム画面を作成していく

画面遷移の様子を載せる
フィールドが未入力だと「このフィールドは必須項目です。」という
エラーメッセージを表示する。登録を完了するとuser/list画面に遷移し、
データ入力画面2が表示されるようにする

f:id:ryotank:20220104141451p:plain
入力画面1最初
f:id:ryotank:20220104141534p:plain
各項目未入力
f:id:ryotank:20220104141556p:plain
入力して送信画面遷移
f:id:ryotank:20220104141630p:plain
登録完了すると入力画面2へ画面遷移

まず、ModelFormを作っていく
userディレクトリ内にforms.pyを作成し、下記のように記述する
ModelFormクラスを継承したUserFormクラスを作成する

#本来ならewrnフォルダのuserフォルダにModelformクラスを作成

#データ入力画面1の'作業名'、'分類'、'作業内容'、'備考'の入力項目を作る

from django import forms
from .models import Input_data


class DataForm(forms.ModelForm):
    class Meta:
        model = Input_data
        fields = ('task_name', 'class', 'work_details', 'remarks')
        labels = {
            'task_name': '作業名',
            'class': '分類',
            'work_details':'作業内容',
            'remarks':'備考'
        }
        help_texts = {
            'task_name': '作業名を入力してね',
            'class': '分類を入力してね',
            'work_details':'作業内容を入力',
            'remarks':'備考を入力'
        }

次回はビュー関数を作成する