Django导入models后调用User类报NameError未定义问题求解
问题原因
你执行from myapp import models时,仅将myapp下的models模块导入到当前代码的命名空间中,models模块内部定义的User类并没有被直接暴露到当前作用域,因此直接调用User会触发未定义的名称报错。
而import myapp是将整个myapp包导入到当前命名空间,调用时使用myapp.models.User的完整路径,能顺着包结构逐层定位到User类,因此可以正常运行。
可用的解决方案
- 方案一:保持现有导入逻辑,调用时加上
models前缀
from myapp import models models.User.objects.first()
- 方案二:导入时直接将
User类引入当前命名空间
from myapp.models import User User.objects.first()
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

