我有一个连接到PostGIS数据库后端的GeoDjango实例。当我查询此数据库中的表时,我在标题中得到错误:
AttributeError: 'DatabaseOperations' object has no attribute 'select'
正如其他地方所建议的那样,我检查确保我的local_settings.py
文件指定了正确的数据库引擎:'ENGINE': 'django.contrib.gis.db.backends.postgis'
。这在我的设置文件中已经正确。
你如何解决这个问题?
答案 0 :(得分:2)
听起来您的Django设置不太正确,而您的数据库ENGINE
可能是'django.db.backends.postgresql'
,而数据库应该是'django.contrib.gis.db.backends.postgis'
。要确认,请运行:
python manage.py shell
>>> from django.conf import settings
>>> settings.DATABASES
{'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'HOST': '',
'NAME': 'groundedpleasures',
'OPTIONS': {},
'PASSWORD': '',
'PORT': '',
'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None},
'TIME_ZONE': None,
'USER': ''}}
上面显示,我已经配置了一个'default'
数据库,它使用的是“ postgis”引擎(这就是我们想要的)。
请注意在您的设置中使用dj_database_url
软件包,因为这可能会覆盖环境变量中的数据库设置。还要注意设置中“默认”以外的多个数据库。