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

Postman发送POST请求遇404 Not Found错误的排查与解决

解决POST请求404 Not Found问题

核心问题:路由注册路径错误

你在App.urls中注册ViewSet时,路径参数多了末尾斜杠:

router.register('plants/', views.PlantViewSet)

Django的DefaultRouter会自动为生成的URL添加末尾斜杠,这会导致实际匹配路径出现重复斜杠(如api/plants//),和你Postman请求的api/plants/无法匹配,从而返回404。

修复步骤

  1. 修改App.urls中的路由注册,去掉plants后的斜杠:
router = DefaultRouter()
router.register('plants', views.PlantViewSet)  # 移除末尾的/
urlpatterns = [
    path('api/', include(router.urls))
]
  1. 确认Postman的请求URL为http://localhost:8000/api/plants/(替换成你的实际服务域名/端口),保证路径准确。

额外代码优化建议(非404相关,提升健壮性)

你的create方法直接读取request.data创建对象,跳过了序列化器的验证逻辑,容易引发数据错误或安全问题,建议改用DRF标准流程处理:

def create(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)
    return Response("Plant created successfully", status=status.HTTP_201_CREATED)

这样可以利用PlantSerializer的验证规则,同时符合DRF的规范开发流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:41:06