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

Django REST Framework 404页面未找到问题求助

Django REST Framework 404错误排查与解决方案

问题描述

首次使用Django REST Framework,访问目标URL时出现Error 404 Page not found错误,首页能识别该URL,但实际访问仍报错。已在settings.py中添加应用,完成serializer.py序列化器编写,尝试过Stack Overflow相关方案但无效。

项目结构

lesite/
|--urls.py
|
|--recup_fichier_api/
    |
    |---urls.py
    |---views.py

代码问题分析与修复

你的recup_fichier_api/urls.py存在多处关键错误,这是导致404的核心原因:

1. 子路由配置错误

当前recup_fichier_api/urls.py代码:

urlpatterns = [

]
router = routers.DefaultRouter
router.register = ('table_config', table_configVisewset )

错误点:

  • DefaultRouter未实例化,需加括号()创建对象
  • router.register是方法调用,不是赋值操作,不能用=
  • 未将路由器生成的URL添加到urlpatterns中

修复后的recup_fichier_api/urls.py:

from django.urls import path, include
from rest_framework import routers
from .views import table_configVisewset

router = routers.DefaultRouter()
router.register('table_config', table_configVisewset)

urlpatterns = [
    path('', include(router.urls)),
]

2. 主路由冗余问题

lesite/urls.py中同时配置了path('table_config/', include('recup_fichier_api.urls')),而子路由里又注册了table_config前缀,会导致最终URL变成/table_config/table_config/,不符合预期。

调整方案二选一:

  • 若希望访问URL为/table_config/,修改主路由为:
path('', include('recup_fichier_api.urls'))
  • 或保持主路由的table_config/前缀,子路由中注册时去掉同名前缀:
# recup_fichier_api/urls.py
router.register('', table_configVisewset)

3. 其他潜在问题排查

  • 确认settings.py中已添加rest_framework和recup_fichier_api到INSTALLED_APPS:
INSTALLED_APPS = [
    # ... 其他应用
    'rest_framework',
    'recup_fichier_api',
]
  • 检查table_config模型是否存在,且queryset = table_config.objects.all()能正常返回数据
  • 确认config_serializer序列化器已正确导入到views.py中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:52:15