ホームページ  >  記事  >  バックエンド開発  >  Django URL で「include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります」というエラーが発生するのはなぜですか?

Django URL で「include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります」というエラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 08:02:02766ブラウズ

Why am I getting a

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

原因:

Django 1.10 以降、URL パターンでビューを文字列 (例: 'myapp.views.home') として指定することは許可されなくなりました。

解決策:

実際の呼び出し可能なビューを含めるように urls.py ファイルを更新します:

オプション 1: ビューを個別にインポートして参照します

<code class="python">from django.conf.urls import 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'),
]</code>

オプション 2: ビュー モジュールと参照ビューをインポートします

<code class="python">from django.conf.urls import 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>

注:

  • として使用すると、複数のビューからのビューが可能になりますアプリは名前の競合なしでインポートされます。
  • 読みやすさと URL 逆変換を向上させるために、URL パターンに名前を付けることを検討してください。
  • 詳細については、Django URL ディスパッチャーのドキュメントを参照してください。

以上がDjango URL で「include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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