You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于修改现有数据:PUSH与PUT的选择及ModelViewSet的PUT实现咨询

问题解答

1. 是否可通过PUSH修改数据?还是必须实现PUT?

HTTP协议里不存在PUSH这个请求方法,修改现有资源的标准方式是PUT(全量更新)和PATCH(部分更新),你只能用这两种方法来修改数据,不存在用PUSH操作的说法。

2. 如何在ModelViewSet中实现PUT?

你当前使用的ModelViewSet已经默认继承了UpdateModelMixin,这个混入类已经帮你实现了PUT(全量更新)和PATCH(部分更新)的逻辑,不需要额外编写代码。不过要注意两个关键细节:

  • 你的CompanySerializer要正确关联模型字段,且字段不是read_only类型(默认情况下只要字段在序列化器中定义,就支持更新);
  • PUT请求要发送到详情路由,也就是/api/companys/<公司ID>/,而非列表路由/api/companys/。比如要修改ID为1的公司数据,需向/api/companys/1/发送PUT请求,请求体携带要更新的字段内容。

举个curl测试的例子:

curl -X PUT -H "Content-Type: application/json" -d '{"name": "更新后的公司名", "address": "新办公地址"}' http://你的域名/api/companys/1/

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:10:57