Django不安装模型表



在我的项目中,我有一个具有不同路由器类的routers.py。现在,我正在制作一个新的应用程序。我已经创建了我的models.py。我还在settings.py中的INSTALLED_APPS中注册了该应用程序。然后,我运行了validate。一切都很好。当我同步thoughb时,Django不会安装表。我试过使用

python manage.py sqlall <app_name> | psql <database>

然后,我收到一条错误消息,上面写着:

psql: FATAL: password authentication failed for user <user name>

我注意到postgres中不存在这个角色。因此,我创建了具有登录权限createdb和密码的角色。然后,我得到一个不同的错误消息:

psql: FATAL: password authentication failed for user <user name>
close failed in file object destructor:
Error in sys.excepthook:
Original exception was:

而且,它没有提供最初的例外情况。

非常感谢您的帮助。

Django应用程序似乎无法登录到DB。

在django的settings.py中,确保您拥有正确的DB凭据设置:

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'HOST': get_env_variable("DJANGO_DB_HOST"),
    'NAME': get_env_variable("DJANGO_DB_NAME"),
    'USER': get_env_variable("DJANGO_DB_USER"),
    'PASSWORD': get_env_variable("DJANGO_DB_PWD"),
    'PORT': '',
    },
...
}

正如您所看到的,我的凭据是从环境变量中获取的。您可以出于测试目的对它们进行硬编码。

然后在DB(我的是postgresql)中创建用户/授予它正确的权限,例如:

ssh root@dbhost
su - postgres
createdb dbname
psql
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser

应该这样。如果您的设置中缺少以下步骤,我也建议您执行以下步骤:

在你的应用程序的admin.py中,向Django的管理员注册你的模型:

# Register your models here.
admin.site.register(Model1)
...
admin.site.register(ModelN)

然后,假设您已经创建了项目,运行:

python manage.py migrate

(相当于syncdb。请阅读有关迁移的文档)。如果该命令没有要求管理员超级用户,那么创建您的管理用户(即可以通过django的管理界面操作模型的用户),并使用:

python manage.py createsuperuser

启动Django

python manage.py runserver 0.0.0.0:8000

看看当你访问你的网站和的管理员时会发生什么

localhost:8000/
localhost:8000/admin

如果你已经知道所有这些事情,请原谅我。这就是我通常在开发环境中所做的(当然,我也使用virtualenv)。

最新更新