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

Django部署到Heroku后访问/login/报DoesNotExist错误(本地运行正常)

问题根源

你看到的Does not exist at /login/报错不是路由不存在,是视图代码运行时抛出的数据库记录不存在异常:
你本地开发环境的数据库里,已经预先存在store表中username字段值为username和password的两条记录,但部署到Heroku后,你没有在生产数据库中插入这两条数据,store.objects.get()方法匹配不到数据时会直接抛出DoesNotExist异常,和路由配置无关。

修复方案

  • 优先优化视图代码的鲁棒性,把login视图中的两条查询语句替换为get_or_create(),查询不到时自动创建对应记录:
    把views.py中的这两行:
    ls = store.objects.get(username="username")
    ls1 = store.objects.get(username="password")
    
    替换为:
    ls, created = store.objects.get_or_create(username="username")
    ls1, created = store.objects.get_or_create(username="password")
    
  • 确认Heroku生产环境已经执行过数据库迁移,本地终端执行命令:
    heroku run python manage.py migrate
  • 额外优化建议:你的视图函数名login和Django内置的登录方法重名,存在冲突风险,建议修改为my_login之类的自定义名称,同时同步修改app目录下urls.py中的对应引用。

内容的提问来源于stack exchange,提问作者farhan jatt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:00:04