是否有可能讓Django自動刪除請求中不存在的表單集?動態刪除Django中的內聯表單
因此,例如,如果我在加載編輯頁面時使用了HTML表示的三個內聯窗體集,並且在請求過程中使用javascript刪除其中的兩個時,Django就會發現這兩個窗體不再是它們並刪除它們。
是否有可能讓Django自動刪除請求中不存在的表單集?動態刪除Django中的內聯表單
因此,例如,如果我在加載編輯頁面時使用了HTML表示的三個內聯窗體集,並且在請求過程中使用javascript刪除其中的兩個時,Django就會發現這兩個窗體不再是它們並刪除它們。
是的,可以使用幾種不同的方法。
首先複製它在Django管理員應用程序中完成的方式,該應用程序的複選框的標籤類似於「Delete?」。然後,當您稍後在POST請求中處理formset時,檢查該複選框是否爲True,如果是,則刪除該記錄。這可能不是你要找的,因爲你在問題標題中使用了「動態」一詞:)
因此,第二個動態的方法是使用Javascript來「隱藏」已刪除的記錄頁面並將刪除複選框設置爲True。然後,按照上面第一個選項的相同方式處理表單集。有關以這種方式刪除formset的代碼,請參閱django-dynamic-formset。
第三種動態的方式是使用Ajax,當點擊刪除按鈕時,JS調用刪除視圖來刪除記錄,並從HTML中刪除formset。我不能指出任何示例代碼,但我認爲上述第二種方法更好,因爲您可以將所有身份驗證和標準表單驗證代碼保留在一個位置。