1

I got a problem in connecting the PostgreSql in 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"

but, when I tried

>>> 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')

I have no idea where the problem lies
I did google but it didn't help,Can anyone help ?Thanks a lot.
my setting is :

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,
    }
}


1
  • If you find a solution that works for you, make sure you accept it. Commented Apr 3, 2011 at 13:50

1 Answer 1

0

looks like timezone settings are incorrect. check if the value 'America/Chicago' is supported by your postgresql configuration (it is working my test server...)

Try to set it to None - maybe it will help you:

TIME_ZONE = None
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.