Man*_*kar 9 python flask wtforms flask-wtforms
我正在尝试找出一种方法来检查是否有任何内置 Form 方法会在表单已在Flask/WTForms中修改时返回 true
我知道在Django Forms中,我们可以灵活地使用form.has_changed()完全符合我要求的方法。
我正在尝试检查表单是否已被修改,如果是,我会进行一些数据库更新。
如果有人有任何想法,请让我知道这一点或建议正确的开始方法。
我还没有找到任何内置的 Form 方法,但这是我检查表单是否已更改以及哪些字段已更改的奇怪方法。
我只是将整个原始表单存储在附加的 StringField 中,然后将其与新表单进行比较。由于我不希望此字段显示在页面上,因此我将 html 文件中的样式更改为 style="visibility:hidden;display:none"
@app.route("/page", methods=["GET", "POST"])
def page(tag=None):
class Person(FlaskForm):
name = StringField("name")
age = StringField("name")
class Spouses(FlaskForm):
people = FieldList(FormField(JetsonForm), min_entries=0)
people_orig = StringField("people_orig")
submit = SubmitField("Submit")
data_from_database = get_data_from_database()
data = {'people': [], 'people_orig': json.dumps(data_from_database)}
for person_name in data_from_database:
data['people'].append(data_from_database[person_name])
form = Spouses(data=data)
people_orig_data = json.loads(form.people_orig.data)
people_new_data = dict()
for person in form.people:
people_new_data[person.name.data] = {
"name": persom.name.data,
"age": peron.age.data
}
if form.is_submitted():
for person_name in people_new_data:
for field in people_new_data[person_name]:
if people_new_data[person_name][field] != people_orig_data[cam][key]:
#update your database
return redirect(request.url)
return render_template("page.html",form=form)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |