【问题标题】:Django AttributeError: 'DatabaseOperations' object has no attribute 'select'Django AttributeError:“DatabaseOperations”对象没有属性“select”
【发布时间】:2018-07-31 09:43:39
【问题描述】:

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

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

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

你如何解决这个问题?

【问题讨论】:

  • 听起来好像引擎不是'django.contrib.gis.db.backends.postgis',尽管你说的是本地设置,但是你没有提供足够的信息来说明为什么会这样。

标签: django python-2.7 postgis geodjango


【解决方案1】:

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

【讨论】:

  • 很好的解释✌?
猜你喜欢
  • 2016-08-01
  • 2023-04-07
  • 2021-08-16
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多