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中文网其他相关文章!