Django URL のエラー:「TypeError: include() の場合、ビューは呼び出し可能かリスト/タプルである必要があります」について理解
Django 1.10 にアップグレードすると、URL パターンのビュー定義の形式に関連するエラーが発生する可能性があります:
TypeError: view must be a callable or a list/tuple in the case of include().
原因:
Django 1.10 より前では、ビューは、「myapp.views.home」など、モジュール内の位置を参照する文字列として指定できます。ただし、この方法はサポートされなくなりました。
解決策:
Django 1.10 以降では、ビュー定義は呼び出し可能な関数、または呼び出し可能な関数のリスト/タプルとして提供される必要があります。機能。これは、次のいずれかを行う必要があることを意味します:
1.ビュー関数をインポートします:
urls.py を更新してビュー関数を明示的にインポートし、呼び出し可能関数として提供します:
<code class="python">from myapp.views import home urlpatterns = [ url(r'^$', home, name='home'), ]</code>
2.ビュー モジュールをインポートしてエイリアスを使用する:
単一モジュールに複数のビューがある場合、モジュール全体をインポートし、エイリアスを使用して特定のビューにアクセスできます:
<code class="python">from myapp import views as myapp_views urlpatterns = [ url(r'^$', myapp_views.home, name='home'), ]</code>
他のアプリからのビューのインポート:
使用したいビューが別のアプリにある場合は、アプリのビュー モジュールをインポートして、上記と同じ手法を使用できます:
<code class="python">from another_app import views as another_app_views urlpatterns = [ url(r'^$', another_app_views.my_view, name='my_view'), ]</code>
注: この方法でビューをインポートするときは、独自のアプリで定義されたビューとの競合を避けるために、エイリアス (another_app_views など) を使用することをお勧めします。
追加情報:
Django での URL パターンの定義の詳細については、Django URL ディスパッチャーのドキュメントを参照してください: https://docs.djangoproject.com/en/stable/topics/http /urls/
以上がDjango URL の「TypeError: ビューは呼び出し可能またはリスト/タプルである必要があります」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。