升级到Django 4.0后,运行python manage.py runserver
时会出现以下错误
...
File "/path/to/myproject/myproject/urls.py", line 16, in <module>
from django.conf.urls import url
ImportError: cannot import name 'url' from 'django.conf.urls' (/path/to/my/venv/lib/python3.9/site-packages/django/conf/urls/__init__.py)
我的urls.py如下:
from django.conf.urls
from myapp.views import home
urlpatterns = [
url(r'^$', home, name="home"),
url(r'^myapp/', include('myapp.urls'),
]
发布于 2021-12-11 22:44:15
django.conf.urls.url()
在Django 3.0中被废弃,在Django 4.0+中被删除。
最简单的解决方法是将url()
替换为re_path()
。re_path
使用像url
这样的正则表达式,所以您只需要更新导入并用re_path
替换url
。
from django.urls import include, re_path
from myapp.views import home
urlpatterns = [
re_path(r'^$', home, name='home'),
re_path(r'^myapp/', include('myapp.urls'),
]
或者,您可以切换到使用path
。path()
不使用regexes,所以如果切换到路径,就必须更新您的URL模式。
from django.urls import include, path
from myapp.views import home
urlpatterns = [
path('', home, name='home'),
path('myapp/', include('myapp.urls'),
]
如果您有一个需要更新多个URL模式的大型项目,您可能会发现django-升级库对于更新您的urls.py
文件很有用。
发布于 2022-02-10 21:14:34
我认为快速解决这个问题的方法是做以下工作;
你可以很容易地替换
from django.conf.urls import url
对此:
from django.urls import re_path as url
并保持代码的其余部分与以前相同。(谢谢@Alasdair)
发布于 2021-12-29 17:31:06
参见django版本的4.0,它将无法工作。因此,在虚拟环境中安装Django时,请选择此版本
pip安装django==3.2.10
这肯定会解决您的错误,在main urls.py中这样做:
从django.conf.urls导入url
从django.urls导入路径,包括
https://stackoverflow.com/questions/70319606
复制相似问题