我有一个多部分表单来生成 - 想想类似的工作流程到购物车,你有多个"部分" (例如,详细信息,账单,付款等)一次显示一个表格。
关键详情:
我考虑接近这个的方式:
def
并在request.args
中存储一个值,告诉我哪个" Section"我在render_template
处于另一个表单模板,具体取决于部分。这感觉很难...... 在Flask / WTForms中实现此目标的最佳方法是什么?我上面发布的所有方法似乎都没有,我毫不怀疑这是一个相当普遍的要求。
答案 0 :(得分:1)
最优雅的解决方案无疑需要您在上一个想法中提到的一些JavaScript。您可以使用JS来隐藏表单的不同部分,并在客户端执行必要的检查和/或数据操作,并且只有在正确完整时才将其提交到烧瓶路径。
我使用了你提到的第一种方法。这是它的样子:
@simple_blueprint.route('/give', methods=['GET', 'POST'])
@simple_blueprint.route('/give/step/<int:step>', methods=['GET', 'POST'])
@login_required
def give(step=0):
form = GiveForm()
...
return blah blah
你觉得“hacky”是对的。但是,如果路径除了处理表单之外不需要做太多其他操作,它也可以工作。我的路线工作方式是收集数据,然后向用户询问有关数据的一系列问题。你解释你的情况的方式,需要收集每一步的数据,我真的会推荐javascript解决方案。