ホームページ  >  記事  >  バックエンド開発  >  Django の TypeError を解決する方法: ビューは URL パターンで呼び出し可能である必要がありますか?

Django の TypeError を解決する方法: ビューは URL パターンで呼び出し可能である必要がありますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-22 08:03:30762ブラウズ

How to Resolve Django's TypeError: view must be a callable in URL Patterns?

Django URL パターン: TypeError について: view は呼び出し可能でなければなりません

Django バージョン 1.10 以降では、次の場合に特定のエラー メッセージが表示されることがあります。 URL パターンの定義: TypeError: view は呼び出し可能か、include() の場合はリスト/タプルである必要があります。このエラーは、以前の Django バージョンで一般的に使用されていた URL パターン内の文字列としてビューを指定しようとすると発生します。

解決策:

このエラーを解決するには、次の手順を実行します。 urls.py を更新して実際の呼び出し可能なビューを含める必要があります。これには、urls.py ファイル内にビューをインポートする必要があります。例:

from django.conf.urls import include, url

from django.contrib.auth.views import login
from myapp.views import home, contact

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

代替解決策:

多数のビューがある場合、それらを個別にインポートするのは不便になる可能性があります。別のアプローチは、アプリからビュー モジュールをインポートすることです。

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

myapp_views や auth_views などのエイリアスを使用すると、複数のアプリからビューをインポートするときにビュー名の衝突を防ぐことができます。

追加情報:

URL ディスパッチ パターンのより包括的な情報については、Django URL ディスパッチャの公式ドキュメントを参照してください:

[Django URL ディスパッチャ ドキュメント](https://docs.djangoproject. com/ja/stable/topics/http/urls/)

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

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