電子工作作業報告書管理アプリその21
models.pyの作業内容や備考などはTextFieldに設定を変更したコード
#()内はフィールドオプションでmax_lengthの数はデータ型 #作業内容(work_details)と備考(remarks)はTextFieldに変更 2022-1-7 #CharFieldはmax_lengthは最大255まで それ以上はTextFieldにする from django.db import models class Input_data(models.Model): task_name = models.CharField(max_length=100) class_name = models.CharField(max_length=30) work_details = models.TextField(max_length=2000) remarks = models.TextField(max_length=2000) def __str__(self): return self.task_name
data.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>
{{ form.as_p }}によりフォームをテンプレート(HTMLファイル)に
表示している
fromはインスタンス化したフォームクラスを入れた変数を指定する
as_pとは、formの各要素(inoutタグ)をpタグで囲む事
{% csrf_token %} はCSRF(クロスサイトリクエストフォージェリ)を検証する仕組み
Djangoのフォーム送信では、この記述が無いとエラーになる。
うーん見る限り何も間違ってないのにな~