作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过API
执行更新。推送更新时,我没有所有必填字段,因为我只是在尝试更新已更改的字段。我收到400 "This field is required."
错误。
我知道该字段是必填字段,但我尝试进行更新,而不是再次输入所有必填字段。这是一个PUT
请求。这是在我的serializers
上调用create或update之前发生的。它在is_valid()
调用上失败(我没有覆盖)。老实说,没有任何相关代码可显示。要解决此问题,我必须重写is_valid并在其中提供密码吗?
例如:密码是我的模型中的必填字段。但是,我只按“first_name”,因为这是唯一更改的字段。我会得到:password":["This field is required."]
。
最佳答案
可以通过2个请求获得UPDATE
:PUT and PATCH
PUT
更新将在其上执行操作的对象的所有字段。基本上,它遍历所有字段并逐一更新它们。因此,如果在提供的数据中找不到必填字段,则会引发错误。PATCH
是我们所谓的部分更新。您只能更新需要更改的字段。因此,在您的情况下,将您的请求方法更改为PATCH
即可完成工作。
关于Django更新,没有必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971895/
我是一名优秀的程序员,十分优秀!