您好我正在处理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。
答案 0 :(得分:218)
Django 2.0删除了django.core.urlresolvers
模块,该模块在版本1.10中被移动到django.urls
。您应该更改任何导入以使用django.urls,如下所示:
from django.urls import reverse
请注意,Django 2.0删除了之前django.core.urlresolvers
中的一些功能,因此您可能需要在代码运行之前进行一些更改。有关这些其他更改的详细信息,请参阅features deprecated in 1.9。
答案 1 :(得分:52)
如果要导入反向,请从django.urls
from django.urls import reverse
答案 2 :(得分:15)
您需要替换所有出现的:
from django.core.urlresolvers import reverse
为:
from django.urls import reverse
注意:这同样适用于reverse_lazy
in Pycharm Cmd + Shift + R ,用于在Path中开始重播。
答案 3 :(得分:1)
对于那些可能试图创建Travis构建的用户,从requirements.txt
文件安装Django的默认路径指向其django_extensions
模块尚未更新的存储库。到目前为止,唯一的解决方法是使用pip从master分支安装。那就是制作补丁的地方。但是现在,我们必须等待。
您可以同时尝试此操作,这可能会有所帮助
- pip install git+https://github.com/chibisov/drf-extensions.git@master
- pip install git+https://github.com/django-extensions/django-extensions.git@master
答案 4 :(得分:1)
使用这个:
from django.urls import reverse
答案 5 :(得分:1)
对于大于2.0的Django版本,请使用:
from django.urls import reverse
在您的models.py文件中。
答案 6 :(得分:1)
要解决此问题,您可以将Django
降级到小于2.0.
pip
的任何版本,请安装Django==1.11.29
。
答案 7 :(得分:0)
如果由于特定原因在TravisCI上构建失败,则可以通过更新requirements.txt中的Django Extensions解决问题。
pip install --upgrade django-extensions
这将更新扩展以使用Django 2+模块。
答案 8 :(得分:0)
urlresolver已在更高版本的Django中删除-请升级django安装。我使用以下命令对其进行了修复。
pip install django==2.0 --upgrade
答案 9 :(得分:0)
就我而言,问题是我安装的django-stronghold
已过时(0.2.9)。即使在代码中,我也有:
from django.urls import reverse
我仍然遇到错误。将版本升级到django-stronghold==0.4.0
后,问题消失了。
答案 10 :(得分:0)
使用django.urls中的导入反向,而不是使用django.core.urlresolvers中的导入反向
答案 11 :(得分:0)
将 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'
答案 12 :(得分:-4)
您可以毫无问题地创建符号链接。
cd site-packages/django/core
ln -s ../urls/ urlresolvers
这就是全部。
这对于仍在旧路径中搜索的未更新包非常有用。