Django AttributeError:' DatabaseOperations'对象没有属性'选择'

时间:2018-02-20 22:27:17

标签: django python-2.7 postgis geodjango

我有一个连接到PostGIS数据库后端的GeoDjango实例。当我查询此数据库中的表时,我在标题中得到错误:

AttributeError: 'DatabaseOperations' object has no attribute 'select'

正如其他地方所建议的那样,我检查确保我的local_settings.py文件指定了正确的数据库引擎:'ENGINE': 'django.contrib.gis.db.backends.postgis'。这在我的设置文件中已经正确。

你如何解决这个问题?

1 个答案:

答案 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软件包,因为这可能会覆盖环境变量中的数据库设置。还要注意设置中“默认”以外的多个数据库。