2011-11-10 48 views
52

在我寫入urls.py之前,我的代碼......一切都很完美。現在我有問題 - 無法進入我的網站。 「不能導入名稱模式」無法導入名稱圖案

urls.py是:

from django.conf.urls import patterns, include, url 

他們說,這裏是什麼地方出錯。

+0

您能告訴我們完整的錯誤和跟蹤嗎? –

+3

我在遵循「編寫您的第一個django應用程序」指南時遇到了同樣的問題。當我將url模式從主要的urls.py移到polls.urls.py時。問題解決後,我改變「從django.conf.urls導入模式,包括,網址」與「從django.conf.urls.defaults導入* 」 – qliq

+2

我部署到我的登臺服務器時有同樣的問題。問題消失了,我從django 1.3.1升級到1.4,運行sudo pip install --upgrade django –

回答

18

您不需要那些導入。你在你的urls.py需要(開始)的唯一事情是:

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 
) 

注:該解決方案的目的是爲Django的< 1.6。這實際上是由Django本身生成的代碼。對於較新的版本,請參閱Jacob Hume的答案。

+2

這對我不起作用。 – Hunsu

+30

導入*被認爲是不好的做法 – llazzaro

+2

from django.conf.urls.defaults import *從djnago1.6中刪除 – neelima

17

是:

from django.conf.urls.defaults import ... # is for django 1.3 
from django.conf.urls import ...   # is for django 1.4 

我也遇到了這個問題。

+0

爲什麼這個答案不被接受? – Alexxio

0

我直接克隆我的項目到Eclipse從GIT,

最初我是在特定位置的文件系統上克隆它然後再將其導入爲現有的項目到Eclipse中解決它。

124

從Django 1.10開始,patterns模塊已被刪除(自1.8版以來它已被棄用)。

幸運的是,它應該是一個簡單的編輯,刪除違規代碼,因爲urlpatternsshould now be stored in a plain-old list:不支持

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    # ... your url patterns 
] 
+1

但我怎麼追加'MEDIA_ROOT'和'MEDIA_URL'到urlpatterns –

+1

如何添加媒體網址:https://docs.djangoproject.com/en/1.10/howto/static-files/#serving-static-files -during-development – Raptor

+2

爲了在Django 1.8中找到更好的文檔和理由,請參閱https://docs.djangoproject.com/en/1.10/releases/1.8/#django-conf-urls-patterns – nealmcb

9

模式模塊..礦用這個工作。

from django.conf.urls import * 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    # ... your url patterns 
] 
4

這是爲我工作的代碼。我的Django的版本是不1.10.4最終

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)), 
] 
2

模式模塊提供的Django 1.8。因此,您需要從您的導入中刪除圖案,並執行類似以下操作:

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)), 
]