You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django报错TypeError: view必须是可调用对象或include所需的列表/元组

解决Django TypeError报错及相关疑问

先排查你的报错原因

你遇到的TypeError: view must be a callable or a list/tuple in the case of include(),结合你的根urls.py,大概率是以下问题:

  • 检查webarticles/urls.py是否正确定义了urlpatterns列表,比如是否为空,或者格式错误(未将路径放入列表)。正确示例如下:
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
  • 确认webarticles应用已在项目settings.py的INSTALLED_APPS中注册,需添加一行'webarticles',,否则Django无法找到该应用的路由配置。
  • 若你使用较老的Django版本(2.x之前),需确认include用法是否匹配,但从你使用path来看,此可能性较低。

解答你的两个疑问

1. 为什么有的方案使用url而非path?

url是Django 1.x的路由写法,在2.x及之后版本被重命名为re_path,作用是匹配正则表达式格式的路径;而path专门用于匹配普通非正则路径,仅支持用尖括号<>定义的路径转换器(如<int:pk>)。

所以出现url的方案,要么是基于旧版本Django的教程,要么是场景需要用正则表达式匹配复杂路径(如带日期、多段可变的路径)。

2. 项目与应用处于同一层级时,如何导入webarticles?

  • 路由中的include('webarticles.urls'):只要将webarticles加入settings.py的INSTALLED_APPS,Django会自动在Python路径中找到该应用的urls.py,无需额外处理导入。
  • 导入应用内的模块(如views、models):直接使用from webarticles import views或import webarticles.models即可,因为项目根目录默认在Python的sys.path中,同一层级的应用可直接被导入。

内容的提问来源于stack exchange,提问作者Gaurav Varma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:35:25