看起来您的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': 'mydatabase',
'OPTIONS': {},
'PASSWORD': '',
'PORT': '',
'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None},
'TIME_ZONE': None,
'USER': ''}}
上面显示了我配置了一个名为'default'
的数据库,并且它使用了“postgis”引擎(这正是我们想要的)。
注意在设置中使用dj_database_url
包可能会覆盖环境变量中的数据库设置。还要注意设置中是否存在多个不是“default”的数据库。
'django.contrib.gis.db.backends.postgis'
,尽管你提到了本地设置,但你没有提供足够的信息来说明原因。 - Alasdair