2015-06-22 76 views
0

我试图通过我的API执行更新。当我推送更新时,我没有所有必填字段,因为我只是试图更新已更改的字段。我得到一个400“这个领域是必需的。”错误。Django更新没有必填字段

我知道该字段是必需的,但我试图只更新,而不是再次放入所有我需要的字段。这是一个PUT请求。这发生在我的序列化器上调用创建或更新之前。它在is_valid()调用失败(我不覆盖)。老实说,没有任何相关的代码可以显示。要解决这个问题,我必须重写is_valid并在那里提供密码?

例如:密码是我模型中的必填字段。不过,我只推“first_name”,因为这是唯一改变的字段。我会得到:密码“:[”此字段是必填字段。“]

回答

2

UPDATE经由2个请求是可能的:。PUT and PATCH

PUT更新在其上操作是要被执行的对象的所有字段它基本上遍历所有的字段并逐一更新它们,因此,如果在提供的数据中没有找到必需的字段,将会产生一个错误。

PATCH就是我们所说的部分更新。您只能更新需要更改的字段。因此,在您的情况下将您的请求方法更改为PATCH并且您的工作将完成。

0

我不确定为什么有时候您会寻找答案的小时,然后询问,然后立即找到答案。改变了我的请求是一个“PATCH”而不是“PUT”