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

Django访问/api/lead/报错:module object is not callable

解决Django中/api/lead/访问报错“module object is not callable”的问题

问题根源

你遇到的错误核心是模块导入逻辑错误+文件结构不符合Django/DRF常规约定,具体问题点如下:

  • 视图类未放在标准views.py中,URL配置里的导入路径完全错误
  • 序列化器导入时只导入了模块文件,而非里面的类,导致赋值给serializer_class的是模块而非可调用的类
  • 自定义命名的视图/序列化器文件,增加了导入混乱的概率

修复步骤

1. 调整文件结构(遵循Django/DRF惯例)

  • 新建api/views.py,将LeadListCreate.py里的代码全部移进去
  • 新建api/serializers.py,将LeadSerializer.py里的代码全部移进去

2. 修正视图文件的导入语句

修改api/views.py:

from .models import Lead
from .serializers import LeadSerializer  # 导入同目录serializers模块里的类
from rest_framework import generics


class LeadListCreate(generics.ListCreateAPIView):
    queryset = Lead.objects.all()
    serializer_class = LeadSerializer

3. 修正URL配置

修改api/urls.py,直接导入正确的视图类:

from django.urls import path
from .views import LeadListCreate

urlpatterns = [
    path('lead/', LeadListCreate.as_view()),
]

如果要保证最终访问路径是/api/lead/,调整项目根目录的DjangoApp/urls.py:

from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls')),  # 将api子应用的URL挂载到/api/路径下
]

4. 验证修复

重启Django开发服务器,访问http://localhost:8000/api/lead/,即可正常访问列表和创建接口。


内容的提问来源于stack exchange,提问作者James Davidson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:16:01