2016-01-20 42 views
1
  1. 假設我有一個模型直接對應於ModelFormset。
  2. 假設模型的三個實例保存在數據庫中。
  3. 假設我加載了ModelFormset和初始數據=三個實例
  4. 現在我在頁面上渲染ModelFormset以供用戶修改。
  5. 修改後,用戶點擊提交。如何知道ModelFormset中的哪一個對應於保存在數據庫中的Model的哪個實例?

更新:Django Django如何知道哪個模板是哪個

我正在讀這個例子:https://docs.djangoproject.com/en/1.9/topics/forms/formsets/#formsets-initial-data

在此例子中,初始數據是手動提供。假設如果初始數據傳遞的是這樣的:

article = Article.objects.get(pk=...) 
formset = ArticleFormSet(initial=[ 
    model_to_dict(article) 
]) 

當這個formset發送到模板,是文章的ID中所呈現的HTML保存?如果不是,那麼如果Django對文章進行修改並提交了,它應該如何更新它應該更新的文章?

+1

請顯示您的代碼。你可能不應該使用'initial'參數,而是'queryset'。 –

+1

如果您在'ModelForm'中存在一個現有實例(或者它們在'ModelFormset'內的一組實例中),那麼存在一個隱藏字段,其中包含記錄的主鍵值。每個'ModelForm'也有一個唯一的後綴,這有助於區分哪些字段屬於同一個模型 – yedpodtrzitko

+0

@yedpodtrzitko我認爲你可以重新發布你的評論作爲答案。 –

回答

0

如果您在ModelForm(或在ModelFormset中的一組實例中)中存在一個現有實例,則存在一個隱藏字段,其中包含記錄主鍵的值。

每個ModelForm也有一個唯一的每個字段的後綴,這有助於區分哪些字段屬於同一模型。

+0

如果modelformset被刪除會怎麼樣?它是否也被標記爲在隱藏字段中被刪除? – Cheng

+0

我不明白你的問題。爲刪除modelformset中的記錄,每行都有一個標記爲「刪除」(或「刪除」或某物)的複選框。當你檢查它時,記錄將在表單的提交中被刪除。 – yedpodtrzitko

+0

我不知道刪除的項目是否只是'標記'爲刪除。假設我們提供了兩個formset。一個被用戶刪除,當提交數據時,你是否還會收到兩個表單,其中一個標記爲已刪除,或者您只收到一個表單? – Cheng

相關問題