首頁 >後端開發 >Python教學 >如何修復 Django URL 中的「類型錯誤:視圖必須是可呼叫的或清單/元組」?

如何修復 Django URL 中的「類型錯誤:視圖必須是可呼叫的或清單/元組」?

DDD
DDD原創
2024-10-22 08:05:30788瀏覽

How to Fix

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 中的「類型錯誤:視圖必須是可呼叫的或清單/元組」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn