首頁 >後端開發 >Python教學 >如何解決 Django 1.10 中的「TypeError: View Must Be Callable」錯誤?

如何解決 Django 1.10 中的「TypeError: View Must Be Callable」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-10-22 08:00:03986瀏覽

How to Resolve the

TypeError: View Must Be Callable in Django 1.10

概述:

概述:

概述:

升級到Django 1.遇到錯誤指出「在include() 的情況下,視圖必須是可呼叫的或清單/元組。」此錯誤是由於Django 處理URL 模式中的視圖規範的方式發生變化而發生的。

原因:

從 Django 1.10 開始,將視圖指定為字串 ('myapp.views) .home') 不再支援。 Django 現在要求明確匯入視圖可呼叫物件並將其包含在 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>

1.匯入並指定視圖可呼叫物件:

修改URL 模式以包含匯入的視圖可呼叫物件。如果模式缺少名稱,請考慮新增它們以確保正確的 URL 反轉。
<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>

2.導入視圖模組:

對於具有大量視圖的項目,單獨導入每個視圖可能會變得很麻煩。或者,考慮從應用程式匯入整個視圖模組。

使用別名:
  • 注意使用 as 語句(例如,as myapp_views)進行匯入多個視圖模組,沒有名稱衝突。
  • 附加資訊:
有關 Django 中 URL 調度程序的詳細說明,請參閱官方文件。 確保應用程式的視圖模組正確命名並匯入到設定檔中(例如 INSTALLED_APPS)。 如果儘管採取了上述解決方案,錯誤仍然存在,請檢查 URL 模式中是否有任何拼寫錯誤或語法錯誤.

以上是如何解決 Django 1.10 中的「TypeError: View Must Be Callable」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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