我有 3 個帶有復選框的表單來配置所需的表單(Final_Form)。在用戶選擇所需的欄位(在 form1、form2 和 form3 中)后,我想洗掉最終表單中不需要的所有欄位并呈現最終表單。這樣做的原因是,我有 3 個子類別,大約有 12 個可能的值,在每種形式(form1-form3)中,用戶可以選擇一個或多個子類別。子類別是標準化的,用于描述臨床事件。用戶希望將子類別(1-3;form1-form3)分開并始終帶有示例(在另一個引導程式列中的螢屏右側)。最終形式是最匹配描述臨床事件的子類別的組合。Final_Form 中的所有欄位都是 TextAreaFields。TextAreaFields 的輸入存盤在 sqlite-db 中。
這是我嘗試的方法:
應用程式.py:
if request.method == 'POST' and form1.form1Submit.data:
OnePointOne = form1.OnePointOne.data
if not OnePointOne:
del Final_Form.OnePointOne
return render_template('Form2.html', form2 = form2)
if request.method == 'POST' and form2.form2Submit.data:
TwoPointTwo = form2.TwoPointTwo.data
if not TwoPointTwo:
del Final_Form.TwoPointTwo
return render_template('Form3.html', form3 = form3)
if request.method == 'POST' and form3.form3Submit.data:
ThreePointThree = form3.ThreePointThree.data
if not ThreePointThree:
del Final_Form.ThreePointThree
return render_template('Final.html', Final_Form = Final_Form)
表格.py:
class form1(FlaskForm):
OnePointOne = BooleanField('Effect')
form1Submit = SubmitField('Submit Category')
class form2(FlaskForm):
TwoPointTwo = BooleanField('Measure')
form2Submit = SubmitField('Submit Category')
class form3(FlaskForm):
ThreePointThree = BooleanField('Result')
form3Submit = SubmitField('Submit Category')
class Final_Form(FlaskForm):
OnePointOne = TextAreaField('Example Effect')
TwoPointTwo = TextAreaField('Example Measure')
ThreePointThree = TextAreaField('Example Result')
Final_FormSubmit = SubmitField('Submit incident')
問題是,Final_Form 物件的表單域不會被洗掉(僅在 if 陳述句內)。我非常感謝每一個提示或解釋。
uj5u.com熱心網友回復:
當您顯示三個單獨的頁面時,存在三個單獨的請求。您的 Final_Form 物件不能簡單地保留在這些請求之間。
我不完全理解你為什么以這種方式配置你的第三種形式,解釋你的用例以獲得更好的建議會很有幫助。
沒有更多資訊,我正在考慮一些方法來做到這一點:
- 您將其設定為一頁/請求,您可以使用 AJAX 從一個表單轉到另一個表單。
- 您將其制作為包含所有表單的一頁,使用 JS CSS 控制可視化
- 您將所需的值保存在某處
- 也許你可以把它保存在 cookie (
session物件)中 - 或在資料庫中,如果這在您的背景關系中有意義
- 也許你可以把它保存在 cookie (
另外,請包含此函式的完整代碼 - 不清楚您如何創建您使用的這些表單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420238.html
標籤:
上一篇:使用fetch上傳多個檔案
