django.core.urlresolvers'

我在Django项目上工作,我需要为输入创建一个表单。我尝试从django.core.urlresolvers导入reverse。我得到一个错误:

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

我使用的是Python 3.5.2, Django 2.0和MySQL。

226811 次浏览

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中已弃用的特性

如果你想反向导入,从django.urls导入

from django.urls import reverse

你需要替换所有出现的:

from django.core.urlresolvers import reverse

:

from django.urls import reverse

enter image description here

注意:同样适用于reverse_lazy

在Pycharm Cmd+转变+R中开始替换路径。

对于那些可能试图创建Travis Build的人来说,Django从requirements.txt文件中安装的默认路径指向一个django_extensions模块尚未更新的repo。目前,唯一的解决方法是从主分支使用pip进行安装。这就是制作补丁的地方。但现在,我们必须等待。

你可以试试这个,也许会有帮助

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

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

如果你在TravisCI上的构建因为这个原因失败了,你可以通过更新requirements.txt中的Django Extensions来解决这个问题

pip install --upgrade django-extensions

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

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

pip install django==2.0 --upgrade

对于django 2.0以上版本使用:

from django.urls import reverse

在models.py文件中。

要解决这个问题,你可以将Django降级到小于2.0的任何版本。 pip install Django==1.11.29.

. sh

在我的情况下,问题是我安装了过时的django-stronghold(0.2.9)。即使在代码中

from django.urls import reverse

我还是遇到了错误。在我升级到django-stronghold==0.4.0版本后,问题消失了。

使用django。url导入反向代替从django.core.urlresolvers导入反向

将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'