Django 错误 cannot import name

做权限管理,本来打算自己做,后来想想还是用django自带的吧,结果把自定义的model里的User定义删除,更新数据库,删除admin.py(用来在admin管理界面上注册对user的可视化操作),再运行login和admin,都会报错:cannot import name。

错误为cannot import name someTable
查看log,问题出现在urls.py中的
admin.autodiscover()

不能加载User(这是我自己定义的一个Model,而且在admin.py中做了修改)

现在打算弃用这个model,对数据库也进行了同步,代码也删除了。

理论上在运行时,代码都不会涉及到我之前建的这个model--User,但是错误依然存在。

最后才发现原来的app目录下有一个admin.pyc,原来是残余编译文件导致admin.autodiscover()还是加载admin.pyc,而这里面有原来的User表的模型定义...

删掉admin.pyc,重新运行,ok了,一切正常。

django一定要注意这个问题,在分离模型模块时一定注意清除pyc文件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个使用Python编写的开源Web应用框架它遵循了MVC(Model-View-Controller)的设计模式,旨在帮助开发者快速构建高效、可扩展的Web应用程序。 Django具有以下特点: 1. 强大的ORM(对象关系映射):Django提供了一个强大的ORM,可以将数据库表映射为Python对象,使得开发者可以使用Python代码来操作数据库,而无需直接编写SQL语句。 2. 自动化的管理界面:Django自带了一个自动生成的管理界面,可以方便地对数据库进行增删改查操作,减少了开发者的工作量。 3. URL分发器:Django提供了一个URL分发器,可以将不同的URL请求映射到相应的视图函数上,实现了URL与视图的解耦。 4. 模板引擎:Django内置了一个灵活且易于使用的模板引擎,可以将动态数据与静态HTML页面进行分离,提高了代码的可维护性。 5. 安全性:Django提供了一系列的安全机制,包括防止跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等,保障了Web应用的安全性。 关于"cannot import name"错误,这通常是由于导入模块时出现了问题。可能的原因包括: 1. 模块名称错误:请确保导入的模块名称正确,包括大小写和拼写。 2. 循环导入:如果存在循环导入的情况,可能会导致无法导入模块。可以尝试重新组织代码,避免循环导入。 3. 环境配置问题:请确保所需的依赖库已正确安装,并且在运行代码时可以正确找到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值