我在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。


当前回答

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

其他回答

Django 2.0移除了Django .core.urlresolvers模块,该模块被移到了Django。1.10版中的url。你应该改变任何导入来使用django。而是url,像这样:

from django.urls import reverse

注意,Django 2.0删除了一些以前在Django .core中的特性。Urlresolvers,所以在你的代码工作之前,你可能需要做更多的改变。有关这些额外更改的详细信息,请参阅1.9中已弃用的特性。

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

pip install django==2.0 --upgrade

使用django。url导入reverse而不是from django.core.urlresolvers导入reverse

如果你想导入reverse,从django.urls中导入

from django.urls import reverse

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

pip install --upgrade django-extensions

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