我正在关注 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 的新手,任何帮助将不胜感激。
提前致谢
我访问时也得到了 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/