django+postgresql中不存在关系行为



看了这里的所有其他答案后,我仍然无法理解。在我的项目中,我有两个应用程序,第一个应用程序users管理用户,第二个应用程序signals管理要显示的内容。现在我只是想让第二个应用程序signals工作,但即使是最简单的模型也会在admin中出现错误。

我得到的错误:

ProgrammingError at /admin/signals/signal/
relation "signals_signal" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "signals_signal"

这就是我在models.py:中的内容

class Asset(models.Model):
name = models.CharField(max_length=30)
ticker = models.CharField(max_length=30)

def __str__(self):
return "%s, %s" % (self.name, self.ticker)
class Signal(models.Model):
type = models.CharField(max_length=100)
date = models.DateField()
asset = models.ForeignKey(Asset, on_delete=models.CASCADE)
def __str__(self):
return self.type

settings.py中;

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
# 'NAME': BASE_DIR / 'db.sqlite3',
'NAME': 'users',
'USER': 'admin',
'PASSWORD': 'password',
'HOST': 'localhost'
}
}

signalsadmin.py是:

from django.contrib import admin
from .models import Asset, Signal
# Register your models here.
class AssetAdmin(admin.ModelAdmin):
pass
admin.site.register(Asset, AssetAdmin)
class SignalAdmin(admin.ModelAdmin):
pass
admin.site.register(Signal, SignalAdmin)

我基本上什么都试过:删除迁移,从头开始做startapp等等。我以前从未使用过postgres。感谢您的帮助。

我认为问题来自设置中无效的ENGINE配置。

更改此

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
...  other configurations
}
}

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
...  other configurations
}
}

请参阅https://docs.djangoproject.com/en/stable/ref/settings/#engine

最新更新