5

Django 1.10 にアップグレードした後、実行すると次のエラーが表示されますpython manage.py runserver

?: (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'),
]
4

2 に答える 2

14

URL 構成を簡素化するためpatterns()に、Django 1.8 で廃止され、1.10 で削除されました (リリース ノート)。Django 1.10 では、インスタンスurlpatternsのリストでなければなりません。url()タプルの使用patterns()はサポートされなくなり、Django チェック フレームワークでエラーが発生します。

これを修正するのは簡単です。タプルを変換するだけです

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

url()インスタンスへ:

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

次の場合はNameError

NameError: name 'url' is not defined

次に、次のインポートをに追加しますurls.py

from django.conf.urls import url

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

の詳細については、Django URL ディスパッチャ ドキュメントを参照してくださいurlpatterns

于 2016-08-05T09:59:01.913 に答える