我正在开发 Django 项目,我需要为输入创建一个表单。我试图reverse
从django.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。
我正在开发 Django 项目,我需要为输入创建一个表单。我试图reverse
从django.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。
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.urls import reverse而不是from django.core.urlresolvers import reverse
对于那些可能试图创建 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
对于大于 2.0 的 django 版本,请使用:
from django.urls import reverse
在您的 models.py 文件中。
我有同样的问题,但from django.urls import reverse
为我工作
使用这个:
from django.urls import reverse
urlresolver 已在更高版本的 Django 中被删除 - 请升级您的 django 安装。我使用以下命令修复了它。
pip install django==2.0 --upgrade
如果您在 TravisCI 上的构建由于此特定原因而失败,您可以通过更新 requirements.txt 中的 Django 扩展来解决问题
pip install --upgrade django-extensions
这将更新扩展以使用 Django 2+ 模块。
要解决此问题,您可以将 降级Django
到低于2.0.
pip
install的任何版本Django==1.11.29
。
将 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-stronghold
安装已过时(0.2.9)。即使在我的代码中:
from django.urls import reverse
我仍然遇到错误。我升级版本后django-stronghold==0.4.0
问题就消失了。