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

求助:Django项目出现ModuleNotFoundError: No module named 'rest_framework.router'

Django项目报错ModuleNotFoundError: No module named 'rest_framework.router'的解决

我是开发领域的新手,在Django项目中遇到错误:ModuleNotFoundError: No module named 'rest_framework.router'。我已尝试将django、djangorestframework等所有相关包更新至最新版本,查阅官方文档也未找到解决思路,该问题已困扰我超过一天。以下是报错堆栈、我的urls.py配置及INSTALLED_APPS配置:

报错堆栈

Traceback (most recent call last):
File "/home/henadzi/project/onlineshop/manage.py", line 22, in <module>
    main()
    File "/home/henadzi/project/onlineshop/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
    self.execute(*args, **cmd_options)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/management/base.py", line 443, in execute
    self.check()
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/management/base.py", line 475, in check
    all_issues = checks.run_checks(
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 14, in check_url_config
    return check_resolver(resolver)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 24, in check_resolver
    return check_method()
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 494, in check
    for pattern in self.url_patterns:
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 715, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 708, in urlconf_module
    return import_module(self.urlconf_name)
    File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 883, in exec_module
    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
    File "/home/henadzi/project/onlineshop/server/urls.py", line 7, in <module>
    path('', include('product.urls')),
    File "/home/henadzi/project/onlineshop/venv/lib/python3.10/site-packages/django/urls/conf.py", line 38, in include
    urlconf_module = import_module(urlconf_module)
    File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 883, in exec_module
    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
    File "/home/henadzi/project/onlineshop/product/urls.py", line 4, in <module>
    from rest_framework.router import DefaultRouter
ModuleNotFoundError: No module named 'rest_framework.router'

我的urls.py配置

from django.urls import include, path
from product.views import ProductViewSet
from rest_framework import routers
from rest_framework.router import DefaultRouter

router = DefaultRouter()
router.register('', ProductViewSet, basename="ProductViewSet")

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

我的INSTALLED_APPS配置

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'product',
]

解决办法

问题出在导入路径的拼写错误:DefaultRouter所在的模块是rest_framework.routers(复数形式),不是rest_framework.router。你只需要修正导入语句即可,其他配置没有问题。

修正后的urls.py代码:

from django.urls import include, path
from product.views import ProductViewSet
from rest_framework.routers import DefaultRouter  # 改为复数routers

router = DefaultRouter()
router.register('', ProductViewSet, basename="ProductViewSet")

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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:50:28