testdriven.io django 在尝试访问 postgres 时在 Heroku 上筹集 500

问题描述 投票:0回答:1

我正在关注 https://testdriven.io/courses/tdd-django/deployment/ 中的教程。 当我请求 get 而不访问 postgres 时,一切正常, http://ancient-waters-04623.herokuapp.com/ping/ 将返回状态 200

我完成了迁移和种子数据

$ heroku run python manage.py migrate
$ heroku run python manage.py loaddata movies.json

当我在浏览器中运行 http://ancient-waters-04623.herokuapp.com/api/movies/ 时,它会给我错误 500

日志:

$ heroku logs --app=ancient-waters-04623 --tail

2020-09-07T10:13:51.045281+00:00 heroku[路由器]: at=info method=GET path="/ping/" host=ancient-waters-04623.herokuapp.com request_id=1895c42e-27d8-4d67 -b5e8-98d0e5c3a3bd fwd =“210.186.32.252”dyno = web.1连接= 0ms服务= 4ms状态= 200字节= 225协议= http

我尝试通过 dbeaver 连接数据库,它已连接并加载了正确的数据。

我是 heroku 或 django 的新手,任何帮助将不胜感激。

提前致谢

django heroku
1个回答
0
投票

我访问时也得到了 500 的退款

https://APP_NAME.herokuapp.com/api/movies/

我在 Dockerfile.prod 中打开了调试模式,并且能够查看带有预期数据的 DRF Browsable API。

这让我验证...

if not DEBUG:
    REST_FRAMEWORK = {
        "DEFAULT_RENDERER_CLASSES": (
            "rest_framework.renderers.JSONRenderer",
        )
    }

...在settings.py中,我确定我缺少最后的“,”(另请参阅:https://testdriven.io/courses/tdd-django/deployment/#H-1-browsable-api )

修复该问题并在 Dockerfile.prod 中再次禁用调试模式后,我重建了映像,将其推送到 heroku 容器注册表并发布。现在,我从

得到了预期的 JSON 响应
https://APP_NAME.herokuapp.com/api/movies/
© www.soinside.com 2019 - 2024. All rights reserved.