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

Django开发:为何无法从views.py中导入generic模块?

Django导入通用视图错误的解决办法

错误原因

你写的from django.views.generic import generic是错误的——django.views.generic本身就是顶层模块,模块内部并没有名为generic的可导入对象,所以会触发ImportError。

两种正确的写法

写法1:导入整个generic模块并设置别名

如果你想通过generic.ListView这种方式调用视图类,应该直接导入整个模块并设置别名,而非尝试导入不存在的generic对象:

import django.views.generic as generic

class LeadListView(generic.ListView):
    template_name = "leads/lead_list.html"
    queryset = Lead.objects.all()
    content_object_name = "leads"

写法2:批量导入所需视图类

你之前用的单独导入方式可以优化成更清晰的批量写法,避免重复:

from django.views.generic import (
    ListView,
    CreateView,
    DetailView,
    # 按需添加其他需要的视图类,比如UpdateView、DeleteView等
)

class LeadListView(ListView):
    template_name = "leads/lead_list.html"
    queryset = Lead.objects.all()
    content_object_name = "leads"

关于top_level_module=True

你查到的这个参数和当前问题无关,它是Python包打包时setup.py里的配置项,用于声明顶层模块,完全不适用于解决Django视图的导入错误,不用理会。

内容的提问来源于stack exchange,提问作者Felix Songwe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:49:58