2016-04-23 15 views
0

在一種形式中處理具有多種形式和未知數量元素的頁面的最佳方式是什麼?如何處理具有未知元素數量的表單提交?

讓我們假設我有3個模型,書,食譜和成分,這些需要顯示在同一個網頁上。每本書也可以容納任何數量的食譜,每個食譜可以容納任何數量的食材。這些模型中的每一個都將具有從ModelForm繼承的形式。

一旦表單顯示給用戶,她可以自由地動態添加她需要的食譜或配料。這是通過沒有Ajax的JS完成的。

什麼是驗證表單時處理此問題的最佳方法?驗證Book的表單很簡單,但是如何處理未知數量的食譜和配料?

回答

0

解決方法是使用prefixes和數字。所以一個表單將會有前綴'recipe_1_',並且配方中的每個成分都會有前綴'ingredient_1_'。

對於第二個配方和第二組成分剛剛整數。

提交表單時,需要從request.form獲取值並使用它們逐個創建表單,通常是循環訪問request.form的內容並使用前綴來決定使用哪個表單。