所以这是我的第一个Python
项目,我正在尝试将其部署到Heroku
。我已经看了很多关于这个问题的问题,但我还没有找到关于我的确切问题的解决方案。我收到以下错误。
Exception Type: ProgrammingError
Exception Value: relation "articles_cover" does not exist
LINE 1: ..."profession", "articles_cover"."description" FROM "articles_...
我怀疑这与我如何处理文件结构中的视图和模型有关。我的模型位于应用程序内部,并且应用程序位于整个项目文件夹中,我正在尝试向应用程序外部的某些视图提供对模型的访问权限。这在本地工作得很好。这是结构。
├───articles
│ ├───migrations
│ │ └───__pycache__
│ ├───templates
│ │ └───articles(<==template tags applies to various elements in files)
│ |───__pycache__
| |____models.py (<==models here)
├───assets
├───MyProject
│ |───__pycache__
| |___views.py (<==models applied here)
├───media
└───templates (<==template tags applied to various elements in files)
所以我认为这是一个参考问题,与将模型导入 views.py 有关。再一次,以下内容似乎在本地工作,在查看了 Django 的文档之后,我没有找到另一种方法来执行以下操作。
views.py
from django.http import HttpResponse
from django.shortcuts import render
from articles.models import Article, Cover, Novel, Event, Podcast, Novella, Short
def homepage(request):
covers = Cover.objects.all()
novels = Novel.objects.all()
events = Event.objects.all()
novellas = Novella.objects.all()
shorts = Short.objects.all()
return render(request, 'homepage.html', {
'covers': covers, 'novels': novels, 'events': events,
'novellas': novellas, 'shorts': shorts})
def podcast(request):
podcasts = Podcast.objects.all()
return render(request, 'podcast.html', {'podcasts': podcasts})
我认为在尝试将其部署到Heroku
时我缺少一些东西。我按照这里的说明进行操作,所以我不确定下一步该怎么做。
我知道SQlite
,Django 使用,在某些情况下可能有点不稳定。我需要使用其他东西吗?如果是这样,怎么办?这仅仅是进口问题吗?提前谢谢。
更新:我听从了大家的建议,找到了Posgress文档。我通过pipenv安装了它,并将以下行添加到我的 settings.py 文件中。
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
我尝试了不同的方法将其集成到原始 DATABASES 变量的语法中,但它们都产生相同的结果。"应用程序错误"。当我检查日志时,我发现以下内容。
名称错误: 未定义名称"数据库">
我觉得我错过了一个 Heroku 和 Django 文档都认为我已经完成的步骤。我只是想弄清楚它是什么。
答:在这里找到了一个很好的资源。一步一步地遵循它,解决了问题。感谢那些回答的人。你们把我引向了正确的方向。否则我仍然会为此苦苦挣扎。
你不能在 Heroku 上运行 sqlite。sqlite db 是文件系统上的一个文件,因此不会在测功机之间共享,也不会在重新启动后持续存在。迁移将不起作用,因为它们将始终在单独的进程中进行,因此在数据库文件的单独副本上。
使用适当的数据库插件,即Postgres。
在 Heroku 上部署到生产环境时,建议使用 PostgresSQL。在 Heroku 上设置 Postgres 并将其连接到你的 Django 应用程序相当简单。
Heroku 有一些关于如何启动和运行应用程序 + 数据库的出色文档。
https://devcenter.heroku.com/articles/django-app-configuration