代码之家  ›  专栏  ›  技术社区  ›  ruipacheco

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

  •  1
  • ruipacheco  · 技术社区  · 8 年前

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

    让我们假设我有3个模型,书,食谱和配料,这些需要显示在同一个网页上。每本书还可以保存任意数量的配方,每个配方可以保存任意数目的配料。这些模型中的每一个都将有一个继承自ModelForm的表单。

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

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   Community Egal    7 年前

    解决方案是使用 prefixes 和数字。因此,表单的前缀为“recipe_1_”,配方中的每种成分都有前缀“ingredient_1_”。

    对于第二个食谱和第二组食材,只需增加整数即可。

    提交表单时,需要从以下位置获取值 request.form 并使用它们逐个创建表单,通常通过循环浏览 请求.form 并使用前缀来决定使用哪个Form。