在 Django REST Framework (DRF) 视图集中,Axios 发送的PATCH请求默认对应partial_update方法
在 Django REST Framework (DRF) 视图集中,Axios 发送的PATCH请求默认对应partial_update方法。
核心对应关系:
HTTP 方法 |
DRF 视图集方法 |
功能描述 |
GET |
list |
获取资源列表 |
GET |
retrieve |
获取单个资源 |
POST |
create |
创建资源 |
PUT |
update |
全量更新资源 |
PATCH |
partial_update |
部分更新资源 |
DELETE |
destroy |
删除资源 |
关键说明:
- PATCH请求用于部分更新(仅修改提供的字段),而PUT用于全量更新(需提供所有必填字段)。
- 在ModelViewSet中,partial_update方法已默认实现,会自动处理PATCH请求并更新指定字段。
- 若使用自定义视图集,需确保在@action装饰器中显式指定methods=['patch']以映射自定义动作。
示例代码片段:
from rest_framework.viewsets import ModelViewSet
class YourModelViewSet(ModelViewSet):
queryset = YourModel.objects.all()
serializer_class = YourModelSerializer
# PATCH 请求会自动路由至 partial_update 方法
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)