我在“python manage.py shell”中运行了以下代码:
from django.db import connection
cursor = connection.cursor()
但是得到了以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 306, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 177, in _cursor
self.connection = Database.connect(**conn_params)
File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async)
OperationalError: FATAL: role "jay" does not exist
在 settings.py 文件中,我有以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mysite',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
我在这里做错了什么?我安装了postgresql和适配器。
sudo su - postgres -c "createuser -P jay"
当然也可以使用psql来完成,但是-u应该改为-U,而且我还遇到了其他错误。 - jcomeau_ictxsudo su -
。使用sudo -u postgres
即可。同样的效果,没有繁琐的引用。 - Craig Ringer