如何使用未知数量的元素处理表单提交?

时间:2016-04-23 23:49:32

标签: flask sqlalchemy flask-sqlalchemy wtforms flask-wtforms

在其中一个表单中处理包含多个表单和未知数量元素的页面的最佳方法是什么?

假设我有3个型号,Book,Recipe和Ingredient,这些需要显示在同一个网页上。每本书还可以容纳任意数量的食谱,每个食谱可以容纳任意数量的食材。这些模型中的每一个都将具有继承自ModelForm的表单。

一旦向用户显示表单,她就可以自由地动态添加她需要的食谱或配料。这是通过没有Ajax的JS来完成的。

验证表单时处理此问题的最佳方法是什么?验证Book的表单很简单,但如何处理未知数量的食谱和配料?

1 个答案:

答案 0 :(得分:0)

解决方案是使用prefixes和数字。因此,表单会有前缀' recipe_1 _'并且配方中的每种成分都有前缀' ingredient_1 _'。

对于第二个配方和第二组配料,只需要整数。

提交表单时,必须从request.form获取值并使用它们逐个创建表单,通常是循环遍历request.form的内容并使用前缀决定使用哪种表格。