我正在开发一个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项目,需要创建一个输入表单。我尝试从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 2.0移除了django.core.urlresolvers
模块,并将其从1.10版本中移动到django.urls
。您应该更改任何导入以使用django.urls,像这样:
from django.urls import reverse
请注意,Django 2.0删除了一些之前在django.core.urlresolvers
中的功能,因此您可能需要进行更多的更改,以使您的代码正常工作。有关这些附加更改的详细信息,请参见1.9版本中已弃用的功能。
如果想要导入reverse,就需要从django.urls
中进行导入。
from django.urls import reverse
使用 from django.urls import reverse 替代 from django.core.urlresolvers import reverse
requirements.txt
文件中安装Django的默认路径指向一个库,该库的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文件中。
将 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'
urlresolver在较高版本的Django中已被删除 - 请升级您的Django安装。我使用以下命令修复了它。
最初的回答:
pip install django==2.0 --upgrade
pip install --upgrade django-extensions
Django
版本降级到小于 2.0
的任何版本。使用以下命令: pip install Django==1.11.29
。