230

我正在开发 Django 项目,我需要为输入创建一个表单。我试图reversedjango.core.urlresolvers. 我收到一个错误:

line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'

我正在使用 Python 3.5.2、Django 2.0 和 MySQL。

4

13 回答 13

460

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

from django.urls import reverse

请注意,Django 2.0 删除了以前在django.core.urlresolvers. 有关这些附加更改的详细信息,请参阅1.9 中弃用的功能。

于 2017-03-31T11:20:42.017 回答
67

如果要反向导入,请从django.urls

from django.urls import reverse
于 2017-03-31T11:21:05.287 回答
30

您需要替换所有出现的:

from django.core.urlresolvers import reverse

到:

from django.urls import reverse

在此处输入图像描述

注意:这同样适用于 reverse_lazy

在 Pycharm Cmd++ 中用于在 Path 中开始Shift替换。R

于 2018-03-05T14:50:14.190 回答
4

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

于 2020-11-19T14:42:12.433 回答
3

对于那些可能试图创建 Travis 构建的人来说,安装 Django 的默认路径从requirements.txt文件指向django_extensions模块尚未更新的存储库。目前,唯一的解决方法是使用 pip 从主分支安装。那就是制作补丁的地方。但就目前而言,我们将不得不等待。

你可以试试这个,它可能会有所帮助

- pip install git+https://github.com/chibisov/drf-extensions.git@master

- pip install git+https://github.com/django-extensions/django-extensions.git@master

于 2018-08-24T04:34:59.660 回答
3

对于大于 2.0 的 django 版本,请使用:

from django.urls import reverse

在您的 models.py 文件中。

于 2019-10-27T06:11:16.137 回答
3

我有同样的问题,但from django.urls import reverse为我工作

于 2021-08-29T07:48:59.457 回答
2

使用这个:

from django.urls import reverse
于 2019-03-04T16:50:08.080 回答
2

urlresolver 已在更高版本的 Django 中被删除 - 请升级您的 django 安装。我使用以下命令修复了它。

pip install django==2.0 --upgrade
于 2019-05-17T12:03:38.800 回答
1

如果您在 TravisCI 上的构建由于此特定原因而失败,您可以通过更新 requirements.txt 中的 Django 扩展来解决问题

pip install --upgrade django-extensions

这将更新扩展以使用 Django 2+ 模块。

于 2019-03-29T03:02:22.253 回答
1

要解决此问题,您可以将 降级Django到低于2.0. pipinstall的任何版本Django==1.11.29

于 2020-03-16T11:52:00.103 回答
1

将 Django 1.9 (Python 2.7) 升级到 Django 3.2 (Python 3.9)

这可以通过一行 bash 替换来解决:

grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'
于 2021-06-26T16:50:22.460 回答
0

就我而言,问题是我的django-stronghold安装已过时(0.2.9)。即使在我的代码中:

from django.urls import reverse

我仍然遇到错误。我升级版本后django-stronghold==0.4.0问题就消失了。

于 2020-10-23T08:28:12.997 回答