这更像是一个python问题,而不是一个wtforms问题,底部的摘要可能对那些经常回答纯python问题的人更有意义。 当页面验证并且一个字段验证失败时,我设法通过使用if / else语句使我的脚本保持先前输入的值。它允许用户在触发验证错误之前查看他们输入的内容:
if request.method == 'POST':
if form.validate_on_submit():
try:
models.insert(form)
except:
return redirect(url_for('failure'))
else:
return redirect(url_for('success'))
else:
number_of_discs = form.number_of_discs.data
number_of_parts = form.number_of_parts.data
disc_number = form.disc_number.data
tx_date = form.tx_date.data
start_time_1 = form.start_time_1.data
end_time_1 = form.end_time_1.data
start_time_2 = form.start_time_2.data
end_time_2 = (form.data.get('end_time_2', ''))
但是,如果其中一个字段留空,并且另一个错误填充的字段触发验证错误,则空字段中的值现在显示为“无”。 在某种程度上,这是设计,因为我希望数据库使用NULL值而不是空字符串进行更新。但是,在此过程的这一部分 - 即表单验证中,我希望该字段显示为空。
总而言之,我该如何改变这一行:
number_of_discs = form.number_of_discs.data
这样number_of_discs包含form.number_of_discs.data中的数据,除非它为null,在这种情况下它应该包含一个空字符串。
答案 0 :(得分:2)
如果data
为空:
number_of_discs = form.number_of_discs.data or ''
否则,例如:
number_of_discs = form.number_of_discs.data if form else ''