将GeoDjango集成到现有的Django项目中

use*_*661 6 database django geodjango

我有一个包含多个应用程序的Django项目.他们都共享一个数据库engine = django.db.backends.postgresql_psycopg2.现在我想要一些功能,GeoDjango并决定将它集成到我现有的项目中.我仔细阅读了教程,看起来我必须为GeoDjango创建一个单独的spartial数据库.我想知道是否还有.我尝试将其添加到我的应用程序的models.py中,而不更改我的数据库设置:

from django.contrib.gis.db.models import PointField

class Location(models.Model):
        location = PointField()
Run Code Online (Sandbox Code Playgroud)

但是当我运行syncdb时,我收到了这个错误.

File "/home/virtual/virtual-env/lib/python2.7/site-packages/django/contrib/gis/db/models/fields.py", line 200, in db_type
    return connection.ops.geo_db_type(self)
Run Code Online (Sandbox Code Playgroud)

Pil*_*ill 2

实际上,据我记得, django.contrib.gis.db.backends.postgis 是 postgresql_psycopg2 的扩展,因此您可以在设置中更改数据库驱动程序,使用空间模板创建新数据库,然后将数据迁移到新数据库(South 非常适合此) 。geodjango 本身高度依赖于数据库内部方法,因此不幸的是,您无法将它与常规数据库一起使用。

其他方式 - 您可以利用 django 的多数据库功能,并为 geodjango 模型创建额外的数据库。