'ImportError: cannot import name 'url' from 'django.conf.urls' after upgrading to Django 4.0
After upgrading to Django 4.0, I get the following error when running 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)
My urls.py is as follows:
from django.conf.urls
from myapp.views import home
urlpatterns = [
url(r'^$', home, name="home"),
url(r'^myapp/', include('myapp.urls'),
]
Solution 1:[1]
I think a quick fix to this problem is to do followings;
You can easily replace
from django.conf.urls import url
to this:
from django.urls import re_path as url
And keep the rest of code to be same as before. (Thanks @Alasdair)
Solution 2:[2]
See in django version 4.0 it will not work. So while installing Django in your Virtual Environment select this version
pip install django==3.2.10
This will definitely solve your error and in main urls.py do this:
from django.conf.urls import url
from django.urls import path,include
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Hosein Basafa |
| Solution 2 | davidsbro |
