Django 1.10 の「TypeError: View Must Be Callable」エラーを解決するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-22 08:00:03
オリジナル
910 人が閲覧しました

How to Resolve the

TypeError: View Must Be Callable in Django 1.10

概要:

Django 1.10 にアップグレードすると、ユーザーは次のような問題に遭遇する可能性があります「include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります。」というエラー。このエラーは、Django が URL パターンでビューの仕様を処理する方法の変更が原因で発生します。

原因:

Django 1.10 以降では、ビューを文字列 ('myapp.views) として指定しています。 .home') はサポートされなくなりました。 Django では、ビュー呼び出し可能項目を明示的にインポートして URL パターンに含める必要があります。

解決策:

1.ビュー呼び出し可能オブジェクトのインポートと指定:

インポートされたビュー呼び出し可能オブジェクトを含めるように URL パターンを変更します。パターンに名前がない場合は、URL を正しく反転するために名前を追加することを検討してください。

<code class="python">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'),
]</code>
ログイン後にコピー

2.ビューのインポート モジュール:

多数のビューを持つプロジェクトの場合、各ビューを個別にインポートするのは面倒になる可能性があります。あるいは、アプリからビュー モジュール全体をインポートすることを検討してください。

<code class="python">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>
ログイン後にコピー

エイリアスの使用:

インポートするには as ステートメント (例: as myapp_views) を使用することに注意してください。名前のない複数のビュー モジュールが衝突します。

追加情報:

  • Django の URL ディスパッチャの詳細な説明については、公式ドキュメントを参照してください。
  • アプリのビュー モジュールの名前が正しく設定ファイルにインポートされていることを確認します (例: INSTALLED_APPS)。
  • 上記の解決策にもかかわらずエラーが解決しない場合は、URL パターンにタイプミスや構文エラーがないか確認してください。 .

以上がDjango 1.10 の「TypeError: View Must Be Callable」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!