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

如何结合Django URLpatterns与DRF路由并设置app_name='scrumboard'

排查DRF路由配置问题的几个关键点

嘿,看你贴的代码还没写完(CardVi...应该是CardViewSet吧?),不过先从现有内容帮你梳理几个大概率会踩的坑:

  • 先补全拼写错误:你代码里的CardVi...明显是没写完的类名,先把它补成CardViewSet,确保导入和注册的类名完全匹配,拼写错误是最常见的低级问题。

  • 确认路由的层级配置:
    首先,你的scrumboard/urls.py最后需要把router生成的路由加入到urlpatterns里,补全后的完整代码参考如下:

    # scrumboard/urls.py
    from rest_framework.routers import DefaultRouter
    from .api import ListViewSet, CardViewSet
    from django.urls import path, include
    
    router = DefaultRouter()
    router.register(r'lists', ListViewSet)
    router.register(r'cards', CardViewSet)
    
    urlpatterns = [
        path('', include(router.urls)),
        # 如果有其他自定义视图的路径,也可以加在这里
    ]
    

    另外,别忘了在项目根目录的urls.py里把scrumboard的路由包含进去,比如:

    # project/urls.py
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('api/', include('scrumboard.urls')),  # 这一行必须添加
    ]
    
  • 检查视图集的基础配置:确保你的ListViewSet和CardViewSet正确继承了DRF的视图集类,并且配置了必要的queryset和serializer_class,示例代码如下:

    # scrumboard/api.py
    from rest_framework import viewsets
    from .models import List, Card
    from .serializers import ListSerializer, CardSerializer
    
    class ListViewSet(viewsets.ModelViewSet):
        queryset = List.objects.all()
        serializer_class = ListSerializer
    
    class CardViewSet(viewsets.ModelViewSet):
        queryset = Card.objects.all()
        serializer_class = CardSerializer
    
  • 验证路由是否生效:启动Django服务后,访问http://localhost:8000/api/lists/和http://localhost:8000/api/cards/,如果还是有问题,把具体的报错信息(比如404/500错误提示、终端里的异常栈)贴出来,这样能更精准地定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:46:46