【问题标题】:ERROR: ' No module named 'django.core.urlresolvers'错误:'没有名为'django.core.urlresolvers'的模块
【发布时间】:2018-04-29 23:36:30
【问题描述】:

我正在尝试使用 Django REST 框架创建 Web 服务。在运行服务器时,当我尝试访问管理页面时,出现以下错误:

Invalid template library specified.
ImportError raised when trying to load 
'rest_framework.templatetags.rest_framework': No module named 'django.core.urlresolvers'

注意:我在设置中添加了rest_framework

【问题讨论】:

  • 你使用的是哪个 Django 版本?
  • 请升级您的 Django REST 框架版本或将 Django 降级到与您安装的 DRF 兼容的版本。
  • 我使用的是 Django 2.0。
  • 如我所说,升级 Django REST 框架。

标签: python django django-rest-framework django-urls


【解决方案1】:

Django 2.0 删除了 django.core.urlresolvers 模块,该模块在 1.10 版中移至 django.urls。您应该将任何导入更改为使用 django.urls,如下所示:

from django.urls import reverse 而不是 django.core.urlresolvers

请注意,Django 2.0 删除了以前在 django.core.urlresolvers 中的一些功能,因此您可能需要在代码工作之前进行更多更改

【讨论】:

    【解决方案2】:

    使用这个。

    from django.urls import reverse
    

    Django 1.10 模块 django.core.urlresolvers 已弃用。请使用上面的导入来解决您的问题。

    【讨论】:

    • 在 DRF 3.11.0 的 Django 3.0.3 中为我工作,谢谢!
    【解决方案3】:

    我有同样的问题,当我更新 Django REST 框架并使用 3.7.7 版本时,我可以解决这个问题。 你可以使用这个命令来解决这个问题

    pip install djangorestframework==3.7.7

    【讨论】:

      【解决方案4】:

      从 Django 1.10 开始,模块 django.core.urlresolvers 已被弃用。见官方documentation

      为了解决问题,您必须使用兼容的第三方软件包。您没有提到您使用的是哪个版本的 Django REST Framework,但我认为它不是 DRF 3.x.x

      查看已安装的Django REST Framework版本,更新到3.7.x系列(Stand: 2017-11-17)。

      【讨论】:

      • 感谢您的来信。我卸载了Django 2.0版(算是测试版),安装了官方最新的1.11.7版,现在可以运行了。
      • 是的。工作。官方文件不值得
      猜你喜欢
      • 2017-08-25
      • 2020-02-12
      • 2017-12-26
      • 2019-01-17
      • 2014-12-25
      • 2011-06-26
      • 2017-01-07
      • 2013-06-28
      相关资源
      最近更新 更多