본문 바로가기

개인 스터디/오류

[Django] ImportError: cannot import name 'url' from 'django.conf.urls' 오류

 

오류...

django 스터디를 하면서 외부라이브러리 markdownx를 사용하는데 위와 같은 오류가 났다. 

전에도 비슷한 오류가 났어서 쉽게 해결할 수 있었다.

 

 

위의 site-packages\markdownx\urls.py 로 이동하면

from django.conf.urls import url

from .views import (
    ImageUploadView,
    MarkdownifyView,
)


urlpatterns = [
    url(r'^upload/$', ImageUploadView.as_view(), name='markdownx_upload'),
    url(r'^markdownify/$', MarkdownifyView.as_view(), name='markdownx_markdownify'),
]

이렇게 적혀 있다. 하지만 내가 쓰고 있는 django 4.0 이상의 버전에서부터는 from django.conf.urls import url를 지원하지 않는다. 

 

따라서 4.0이상에서부터 사용하는 정규식을 이용한다.

from django.urls import re_path

from .views import (
    ImageUploadView,
    MarkdownifyView,
)


urlpatterns = [
    re_path(r'^upload/$', ImageUploadView.as_view(), name='markdownx_upload'),
    re_path(r'^markdownify/$', MarkdownifyView.as_view(), name='markdownx_markdownify'),
]

 

from django.urls import re_path 입력 후 url을 모두 re_path로 바꾸어주면 해결된다.

 

 

 


참고사이트

- 잘 설명되어 있음

https://stackoverflow.com/questions/70319606/importerror-cannot-import-name-url-from-django-conf-urls-after-upgrading-to

 

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 d...

stackoverflow.com