Django项目URL映射视图报错AttributeError的技术求助
解决Django中
AttributeError: module 'myproject.views' has no attribute 'morn'的问题 嘿,我刚碰到过几乎一模一样的情况,给你几个实用的排查步骤:
最快速的解决方案:重启开发服务器
Django的自动重载机制有时候会“偷懒”,尤其是当你在已有的文件里新增函数时,它可能没检测到变化,导致服务器还是加载着旧版本的views.py(里面压根没有morn函数)。
直接按Ctrl+C关掉当前的runserver进程,然后重新运行:
python manage.py runserver
之后再访问http://localhost:8000/morn试试,大概率就能正常访问了。
如果重启没用,试试这些方法
删除Python缓存文件
Python会把编译后的模块存在__pycache__文件夹里,有时候旧的缓存会导致新代码不生效。找到项目根目录下的__pycache__文件夹,直接删掉它,然后重启服务器。确认文件已保存
别笑,有时候我们专注写代码,真的会忘了点保存按钮!打开项目根目录的views.py,确认morn函数的代码确实已经保存了。调整导入方式
虽然你用的from . import views是相对导入,理论上没问题,但可以试试换成绝对导入来排除路径问题:
# 把urls.py里的导入改成(替换成你的实际项目名) from myproject import views
然后重启服务器测试。
- 验证视图是否被加载
在morn函数里加一行打印语句,方便确认服务器是否加载了这个函数:
def morn(request): print("morn视图已被加载!") # 新增这行 output = 'Hello, world. Youre at the morn-path.' return HttpResponse(output)
重启服务器后访问/morn,如果控制台输出了这句话,说明视图已经被正确加载;如果没输出,那就是模块没被重新加载,回到前面的步骤再排查。
内容的提问来源于stack exchange,提问作者stackman
相关产品推荐
相关产品推荐

