2015-06-22 139 views
0

我試圖通過我的API執行更新。當我推送更新時,我沒有所有必填字段,因爲我只是試圖更新已更改的字段。我得到一個400「這個領域是必需的。」錯誤。Django更新沒有必填字段

我知道該字段是必需的,但我試圖只更新,而不是再次放入所有我需要的字段。這是一個PUT請求。這發生在我的序列化器上調用創建或更新之前。它在is_valid()調用失敗(我不覆蓋)。老實說,沒有任何相關的代碼可以顯示。要解決這個問題,我必須重寫is_valid並在那裏提供密碼?

例如:密碼是我模型中的必填字段。不過,我只推「first_name」,因爲這是唯一改變的字段。我會得到:密碼「:[」此字段是必填字段。「]

回答

2

UPDATE經由2個請求是可能的:。PUT and PATCH

PUT更新在其上操作是要被執行的對象的所有字段它基本上遍歷所有的字段並逐一更新它們,因此,如果在提供的數據中沒有找到必需的字段,將會產生一個錯誤。

PATCH就是我們所說的部分更新。您只能更新需要更改的字段。因此,在您的情況下將您的請求方法更改爲PATCH並且您的工作將完成。

0

我不確定爲什麼有時候您會尋找答案的小時,然後詢問,然後立即找到答案。改變了我的請求是一個「PATCH」而不是「PUT」