验证失败后从空表单数据中检索空字符串

Retreive Empty String from null form data following failed validation

这更像是一个 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', '')) 

但是,如果其中一个字段留空,并且验证错误被另一个错误填写的字段触发,空字段中的值现在显示为 'None'。 在某种程度上,这是设计使然,因为我希望使用 NULL 值而不是空字符串来更新数据库。但是,在这部分过程中,即表单验证,我希望该字段显示为空。

总而言之,我该如何更改行:

number_of_discs = form.number_of_discs.data

以便 number_of_discs 包含 form.number_of_discs.data 中的数据,除非它为 null,在这种情况下它应该包含一个空字符串。

如果是 data 则为空:

number_of_discs = form.number_of_discs.data or ''

否则,类似于:

number_of_discs = form.number_of_discs.data if form else ''