当前位置: 首页 > 知识库问答 >
问题:

GeoDjango: PostgreSQL没有运行迁移,对象没有属性geo_db_type

姬旭
2023-03-14

Django v1.11.5

我试图安装GeoDjango来玩谷歌地图。

我为MAC安装了PostgreSQL应用程序,并安装了pip安装psycopg2。我还使用自制软件安装GDAL。

要添加的已编辑设置.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'djangodb',
        'USER': 'admin',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

但是,当我运行python manage.pymigrate时,我得到:AttributeError:“DatabaseOperations”对象没有属性“geo\u db\u type”

我创建用户使用:CREATE DATABASE djangodb OWNER admin;

完全错误:

运行迁移:Applying users.0011_location…Traceback(最后一次调用):在execute_from_command_line(sys.argv)文件“/Applications/Anaconda/envs/djangenv/lib/python3.6/site packages/django/core/management/init.py”第364行的execute_from_command_line utility.execute()文件中的文件“management.py”“/Applications/Anaconda/Anaconda/envs/djangonv/lib/python3.6/site packages/django/core/management/init.py”,第356行,在execute self.fetch_命令(子命令)中。从_argv(self.argv)文件运行“/Applications/Anaconda/Anaconda/envs/djangonv/lib/python3.6/site packages/django/core/core/management/base.py”,第283行,从_argv self.execute运行(*args,**cmd_options)文件“/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site packages/django/core/management/base.py”,第330行,在execute output=self.handle(*args,**options)文件“/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site-packages/django/core/management/commands/migrate.py中“,第204行,在handle fake_initial=fake_initial,File”/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site packages/django/db/migrations/executor.py”,第115行,处于迁移状态=self。_migrate_all_forward(状态,计划,完整计划,fake=fake,伪_initial=fake_initial)文件“/Applications/Anaconda/Anaconda/envs/DjangoEnv/lib/python3.6/site packages/django/db/migrations/executor.py”,第145行,in _migrate\u all\u forwards state=self.apply_migration(state,migration,fake=false,fake\u initial=fake\u initial)文件)/Applications/Anaconda/Anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/migrations/executor.py“,第244行,在apply_migration state=migration.apply(state,schema_editor)文件“/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site packages/django/db/migrations/migration.py”中,第129行,在apply操作中。数据库_转发(self.app_标签,schema_editor,旧_状态,项目_状态)文件“/Applications/Anaconda/Anaconda/envs/DjangoEnv/lib/python3.6/site packages/django/db/migrations/operations/models.py”,第97行,在数据库转发模式编辑器中。创建模式(模型)文件“/Applications/Anaconda/Anaconda/envs/DjangoEnv/lib/python3.6/site-packages/django/db/backends/base/schema.py”“,第254行,在create_model definition中,extra_params=self.column_sql(model,field)文件“/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site packages/django/db/backends/base/schema.py”,第144行,在列sql db_params=field.db_参数(connection=self.connection)文件中“/Applications/Anaconda/Anaconda/envs/djangenv/lib/python3.6/site packages/django/db/models/fields/init.py”,第662行,db_参数类型_string=self.db_类型(连接)文件“/Applications/Anaconda/envs/djangenv/lib/python3.6/site-packages/django/contrib/gis/db/models/fields.py“,第126行,在db_type返回连接.ops.geo_db_type(self)AttributeError:'DatabaseOperations'对象没有属性'geo_db_type'

我尝试过类似的问题:在执行syncdb时,获取“DatabaseOperations”对象没有属性“geo\u db\u type”错误

共有1个答案

郑哲彦
2023-03-14

您需要更改数据库设置以使用postgis后端,

'ENGINE': 'django.contrib.gis.db.backends.postgis',

并将“django.contrib.gis”添加到安装的应用程序中。

 类似资料:
  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr

  • 问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形

  • 问题内容: 它显示了运行时错误: 我只是python的初学者,即使在网上搜索后也无法纠正此问题。 问题答案: 错误: 表示您正在尝试将索引运算符应用于int而不是列表。所以即使在应该的时候也没有清单吗?让我们从那开始。 看这里: 在内部使用其他变量名称,看起来列表理解会在迭代过程中覆盖该变量。(不是在设置时 进行 迭代,而是在以下过程中进行。)