2016-08-05 17 views
2

URLのリストであり、私はpython manage.py runserverを実行したときに、私は次のエラーを取得することを確認します。Djangoエラー:URLパターンが無効です。 urlpatternsは、Djangoの1.10にアップグレードした後()インスタンス

?: (urls.E004) Your URL pattern ('^$', 'myapp.views.home') is invalid. Ensure that urlpatterns is a list of url() instances. 
HINT: Try using url() instead of a tuple. 

次のように私のurlpatternsは、次のとおりに

from myapp.views import home 

urlpatterns = [ 
    (r'^$', home, name='home'), 
] 

答えて

7

URL設定を簡素化し、patterns()はDjango 1.8で廃止され、1.10(release notes)で削除されました。 Django 1.10では、urlpatternsurl()のインスタンスのリストでなければなりません。 patterns()のタプルの使用はこれ以上サポートされず、Djangoのチェックフレームワークではエラーが発生します。次のNameError

NameError: name 'url' is not defined 

を取得する場合は、次のインポートを追加し

urlpatterns = [ 
    url(r'^$', home, name='home'), # url instance 
] 

:これを修正

はただのタプルに

urlpatterns = [ 
    (r'^$', home, name='home'), # tuple 
] 

url()にインスタンスを変換し、簡単ですurls.py

from django.conf.urls import url 

あなたのURLパターンに文字列を使用すると、 'myapp.views.home'の場合は、これらを同時に更新する必要があります。詳細はthis answerを参照してください。

urlpatternsの詳細については、Django URL dispatcher docsを参照してください。

0

あなたは、このようなURLパターンを使用しているかどうかを確認してください:

urlpatterns += (
    (r'^404/$', page_not_found_view), 
) 

に変更し、それを:

urlpatterns += [ 
    url(r'^404/$', page_not_found_view), 
] 
関連する問題