У меня проблема с подключением PostgreSql в Django
>>python manage.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", line 250, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 148, in _cursor
cursor.execute("SET TIME ZONE %s", [settings_dict['TIME_ZONE']])
DataError: unrecognized time zone name: "America/Chicago"
но, когда я попробовал
>>> c=connection.cursor()
>>> c
>>> c.execute("select * from test")
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/util.py", line 34, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 44, in execute
return self.cursor.execute(query, args)
DatabaseError: current transaction is aborted, commands ignored until end of transaction block
>>> connection.commit()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", line 202, in commit
self.set_clean()
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", line 147, in set_clean
raise TransactionManagementError("This code isn't under transaction management")
TransactionManagementError: This code isn't under transaction management
>>> c.execute("select * from test")
>>> c.fetchone()
(1, 100, u'abd')
Понятия не имею, в чем проблема
Я сделал Google, но это не помогло, Может кто-нибудь помочь? Большое спасибо.
мои настройки:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydb', # Or path to database file if using sqlite3.
'USER': 'postgres', # Not used with sqlite3.
'PASSWORD': '123', # Not used with sqlite3.
'HOST': '/tmp', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '5432', # Set to empty string for default. Not used with sqlite3.
#'OPTIONS':True,
}
}