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

Django REST API无法编辑Group:POST请求新增而非更新问题求助

问题解决:Groups接口POST请求新增而非更新的问题

核心错误原因

你用错了HTTP请求方法和资源定位规则:

  • POST请求的语义是创建新资源,发送到/groups/时,DRF会自动调用序列化器的create方法生成新的Group记录。
  • 更新现有资源需要使用PUT/PATCH请求,且必须定位到具体的Group实例URL(带上目标记录的id)。

具体解决步骤

1. 使用正确的请求方式与URL

要更新id为8079bf12-bb58-4ea0-a810-58a223d84be7的Group,发送PUT或PATCH请求到以下URL:

http://localhost:8000/groups/8079bf12-bb58-4ea0-a810-58a223d84be7/

请求体无需携带id(模型中id字段设置了editable=False,无法被修改),只需传入要更新的字段:

{
    "name": "Cozinha 123"
}

2. 确认序列化器配置

你的GroupsSerializer是标准的ModelSerializer,默认已经实现了update方法,无需额外修改即可正常处理更新逻辑:

class GroupsSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Groups
        fields = '__all__'

额外说明

强烈遵循REST规范使用PUT/PATCH做更新操作,不要用POST模拟更新——这会混淆接口语义,增加后续维护成本。如果特殊场景必须用POST,需要自定义视图的perform_create或post方法,手动判断是否存在对应id的记录再决定创建或更新,但不推荐这种非常规做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:10:30