電子工作作業報告書管理アプリその26
HTMLでのフォーム作成編その2
変更する前のdata1.html <!--data.htmlはデータ入力画面1--> <!--ewrn/templates/user/data.html--> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>データ入力画面1フォーム</title> </head> <body> <h1>データ入力画面1フォーム</h1> <form method="POST" novalidate> {{ form.as_p }} <!-- フォーム内容がすべて表示される--> {% csrf_token %} <!-- この記述がないとエラーになる --> <button type="submit">入力画面2へ</button> <button type="clear">クリア</button> </form> <p>{{ message }}</p> </body> </html>
こんな感じだったが修正後はこのようになった
修正後のdata1.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>データ入力画面1フォーム</title> </head> <body> <h1>データ入力画面1</h1> <form method="POST" class="data-form">{% csrf_token %}<!-- この記述がないとエラーになる --> {{ form.as_p }} <!-- フォーム内容がすべて表示される--> <button type="submit" class="submit">入力画面2へ</button> <input type="reset" value="リセットする"> </form> <p>{{ message }}</p> </body> </html>
ちなみにformは
#forms.py #本来ならewrnフォルダのuserフォルダにModelformクラスを作成 #データ入力画面1の'作業名'、'分類名'、'作業内容'、'備考'の入力項目を作る from django import forms from .models import Post class DataForm(forms.ModelForm): class Meta: model = Post fields = ('task_name', 'class_name', 'work_details', 'remarks') labels = { 'task_name': '作業名', 'class_name': '分類名', 'work_details':'作業内容', 'remarks':'備考' } help_texts = { 'task_name': '作業名を入力してね', 'class_name': '分類名を入力してね', 'work_details':'作業内容を入力', 'remarks':'備考を入力' }
最初にDjangoのformsをインポート(from django import forms)し
Postモデルもインポートする必要がある
(form .models import Post)
DataFormとは何かと思うがこれはフォームの名前
このDataFormがMetaFormの種類だとDjangoに伝えないと機能しなくなる
class Metaだが、ここで、Djangoにフォームを作る時
どのモデルを使えば良いか(model= Post)を伝える
最後にフォームのフィールドに何を置くかを書く
ここでは、作業名、分類名、作業内容、備考をフォームで使用する
次回はviewの解説かな