首頁  >  文章  >  後端開發  >  如何解決 Django 的 TypeError:視圖必須是 URL 模式中的可呼叫?

如何解決 Django 的 TypeError:視圖必須是 URL 模式中的可呼叫?

Barbara Streisand
Barbara Streisand原創
2024-10-22 08:03:30756瀏覽

How to Resolve Django's TypeError: view must be a callable in URL Patterns?

Django URL 模式:了解TypeError: view 必須是可呼叫

對於Django 版本1.10 及以上版本,以下情況下可能會出現特定錯誤訊息:定義URL 模式:類型錯誤:在include() 的情況下,視圖必須是可呼叫的或清單/元組。當嘗試將視圖指定為 URL 模式中的字串時會發生此錯誤,這是早期 Django 版本中常用的做法。

解決方案:

要解決此錯誤,請執行以下操作:有必要更新您的 urls.py 以包含實際的可呼叫視圖。這需要在 urls.py 檔案中導入視圖。例如:

from django.conf.urls import include, 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'),
]

替代解決方案:

如果您有大量視圖,單獨匯入它們可能會變得不方便。另一種方法是從應用程式匯入視圖模組:

from django.conf.urls import include, 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'),
]

使用 myapp_views 和 auth_views 等別名可以防止從多個應用程式匯入視圖時發生視圖名稱衝突。

其他資訊:

有關URL 調度模式的更全面信息,請參閱官方Django URL 調度程序文檔:

[Django URL 調度程序文件](https://docs.djangoproject. com/en/stable/topics/http/urls/)

以上是如何解決 Django 的 TypeError:視圖必須是 URL 模式中的可呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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