ホームページ >バックエンド開発 >Python チュートリアル >Django 1.10 で「TypeError: ビューは呼び出し可能である必要があります」を修正する方法?

Django 1.10 で「TypeError: ビューは呼び出し可能である必要があります」を修正する方法?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-22 08:06:171064ブラウズ

How to Fix

TypeError: include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります

このエラーは、ビューが次の場合に発生します。 Django 1.10 にアップグレードした後、URL パターンの文字列として指定されます。 Django 1.10 では、ビューを呼び出し可能として指定する必要があります。

解決策:

このエラーを解決するには、urls.py を更新して呼び出し可能なビューを含めます。

単一ビューのインポート:

urls.py に個別のビューをインポートし、関数参照として指定します:

<code class="python">from django.conf.urls import include, url
from myapp.views import home, contact

urlpatterns = [
    url(r'^$', home, name='home'),
    url(r'^contact/$', contact, name='contact'),
]</code>

複数ビューのインポート:

各ビューを個別にインポートしないようにするには、アプリからビュー モジュール全体をインポートできます:

<code class="python">from django.conf.urls import include, url
from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
    url(r'^contact/$', myapp_views.contact, name='contact'),
]</code>

「as」キーワードを使用します:

異なるアプリから複数のビュー モジュールをインポートするときに名前の競合を防ぐには、「as」キーワードを使用します:

<code class="python">from django.conf.urls import include, url
from django.contrib.auth import views as auth_views
from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
    url(r'^contact/$', myapp_views.contact, name='contact'),
    url(r'^login/$', auth_views.login, name='login'),
]</code>

以上がDjango 1.10 で「TypeError: ビューは呼び出し可能である必要があります」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。