cannot import name patterns
Question:
Before I wrote in urls.py
, my code… everything worked perfectly. Now I have problems – can’t go to my site. “cannot import name patterns”
My urls.py
is:
from django.conf.urls import patterns, include, url
They said what error is somewhere here.
Answers:
You don’t need those imports. The only thing you need in your urls.py (to start) is:
from django.conf.urls.defaults import *
# This two if you want to enable the Django Admin: (recommended)
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
)
NOTE: This solution was intended for Django <1.6. This was actually the code generated by Django itself. For newer version, see Jacob Hume’s answer.
Yes:
from django.conf.urls.defaults import ... # is for django 1.3
from django.conf.urls import ... # is for django 1.4
I met this problem too.
I Resolved it by cloning my project directly into Eclipse from GIT,
Initially I was cloning it at specific location on file system then importing it as existing project into Eclipse.
As of Django 1.10, the patterns
module has been removed (it had been deprecated since 1.8).
Luckily, it should be a simple edit to remove the offending code, since the urlpatterns
should now be stored in a plain-old list:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
]
patterns module is not supported.. mine worked with this.
from django.conf.urls import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
]
This is the code which worked for me. My django version is 1.10.4 final
from django.conf.urls import url, include
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
# Examples:
# url(r'^$', 'blog.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
]
Pattern module in not available from django 1.8. So you need to remove pattern from your import and do something similar to the following:
from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
# here we are not using pattern module like in previous django versions
url(r'^admin/', include(admin.site.urls)),
]
Seems you are using outdated version of django..
Simply update django and try again..
Following command will update your django version..
pip install --upgrade django
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
Before I wrote in urls.py
, my code… everything worked perfectly. Now I have problems – can’t go to my site. “cannot import name patterns”
My urls.py
is:
from django.conf.urls import patterns, include, url
They said what error is somewhere here.
You don’t need those imports. The only thing you need in your urls.py (to start) is:
from django.conf.urls.defaults import *
# This two if you want to enable the Django Admin: (recommended)
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
)
NOTE: This solution was intended for Django <1.6. This was actually the code generated by Django itself. For newer version, see Jacob Hume’s answer.
Yes:
from django.conf.urls.defaults import ... # is for django 1.3
from django.conf.urls import ... # is for django 1.4
I met this problem too.
I Resolved it by cloning my project directly into Eclipse from GIT,
Initially I was cloning it at specific location on file system then importing it as existing project into Eclipse.
As of Django 1.10, the patterns
module has been removed (it had been deprecated since 1.8).
Luckily, it should be a simple edit to remove the offending code, since the urlpatterns
should now be stored in a plain-old list:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
]
patterns module is not supported.. mine worked with this.
from django.conf.urls import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
# ... your url patterns
]
This is the code which worked for me. My django version is 1.10.4 final
from django.conf.urls import url, include
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
# Examples:
# url(r'^$', 'blog.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
]
Pattern module in not available from django 1.8. So you need to remove pattern from your import and do something similar to the following:
from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = [
# here we are not using pattern module like in previous django versions
url(r'^admin/', include(admin.site.urls)),
]
Seems you are using outdated version of django..
Simply update django and try again..
Following command will update your django version..
pip install --upgrade django
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]