Django AttributeError:“ DatabaseOperations”对象没有属性“ select”

Ada*_*dam 4 django postgis geodjango python-2.7

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

AttributeError: 'DatabaseOperations' object has no attribute 'select'
Run Code Online (Sandbox Code Playgroud)

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

您如何解决此问题?

Ben*_*els 5

这听起来就好像你的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': ''}}
Run Code Online (Sandbox Code Playgroud)

上面显示了我已经'default'配置了一个数据库,它使用的是“ postgis”引擎(这就是我们想要的)。

请注意dj_database_url在您的设置中使用该软件包,因为这可能会覆盖环境变量中的数据库设置。还请注意设置中“默认”以外的多个数据库。