У меня есть 4 заявки в одном проекте Django.Я использую соединение с базой данных Postgres по умолчанию, которое я включил в мой setting.py
файл.
Объект django.db.connection
представляет соединение с базой данных по умолчанию.Чтобы использовать соединение с базой данных, я вызываю connection.cursor()
, чтобы получить объект курсора.Затем я вызываю cursor.execute(sql, [params])
для выполнения необработанных запросов Postgres и cursor.fetchone()
или cursor.fetchall()
для возврата результирующих строк.
Теперь в одном приложении я хочу использовать (connection.cursor(cursor_factory = psycopg2.extras.RealDictCursor)
), чтобы получить записи в паре (key(column name), value)
, которая предоставляется psycopg2.connect
, но имеющееся у меня соединение по умолчанию несовместимо сcursor_factory = psycopg2.extras.RealDictCursor
.
Как получить пару (key(column name), value)
из базы данных, используя соединение по умолчанию?
В setting.py
`DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=django,public'
},
'NAME': 'postgres',
'USER': 'abc',
'PASSWORD': 'password!',
'HOST': '',
'PORT': '',
}
}
`
В файле Python .py
from django.db import connection
cur = connection.cursor(cursor_factory = psycopg2.extras.RealDictCursor)
cur.execute("SELECT * FROM sometable")
data= cur.fetchall()
ERROR: cursor() got an unexpected keyword argument 'cursor_factory'