Python 3.x &引用;值错误:无法将int类型的对象用于空间查找参数";

Python 3.x &引用;值错误:无法将int类型的对象用于空间查找参数";,python-3.x,postgis,django-2.2,Python 3.x,Postgis,Django 2.2,在我的一个模型中添加了一个点域以加载映射。要迁移模型中的更改,请在python manage.py中使迁移正常运行。但是python manage.py migrate raise ValueError('无法将类型为%s的对象用于空间查找参数。'%type(obj)。名称) 我认为原因可能是Django 2.2中的更改。我甚至尝试使用多多边形字段,PointField 设置.py CORE_APPS = [ 'django.contrib.admin', 'django.co

在我的一个模型中添加了一个点域以加载映射。要迁移模型中的更改,请在python manage.py中使迁移正常运行。但是python manage.py migrate raise ValueError('无法将类型为%s的对象用于空间查找参数。'%type(obj)。名称

我认为原因可能是Django 2.2中的更改。我甚至尝试使用多多边形字段,PointField

设置.py

CORE_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.postgres',
    'django.contrib.gis'
]

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
models.py

from django.contrib.gis.db import models

longitude = models.FloatField("Outlet Longitude", default=0.0, blank=False, help_text="Longitude")
    latitude = models.FloatField("Outlet Latitude", default=0.0, blank=False, help_text="Latitude")
    location = models.PointField()

我只想加载地图。

要使用postgis加载地图,可以执行以下操作:

从django.contrib.gis.db导入模型作为gis\u模型
位置=gis_models.PointField(
“地图中的位置”,地理=真,空白=真,空=真,
srid=4326,help_text=“点(经度)”

建议:从其他应用程序导入模型时尝试使用正确的别名要使用postgis加载地图,可以执行以下操作:

从django.contrib.gis.db导入模型作为gis\u模型
位置=gis_models.PointField(
“地图中的位置”,地理=真,空白=真,空=真,
srid=4326,help_text=“点(经度)”

建议:从其他应用程序导入模型时,请尝试使用正确的别名。在我的情况下,输入元组值作为默认值是一个问题,因此出现了错误

  • 删除模型的“迁移”文件夹中的迁移信息
  • 按如下所示设置默认值
  • python manage.py makemigrations
  • python manage.py迁移

  • 在我的例子中,输入元组值作为默认值是一个问题,因此发生了错误

  • 删除模型的“迁移”文件夹中的迁移信息
  • 按如下所示设置默认值
  • python manage.py makemigrations
  • python manage.py迁移

  • 谢谢你的回复。但是,当我尝试迁移它时,仍然会引发ValueError('无法将类型为%s的对象用于空间查找参数。'%type(obj)。\u_name\u__;)ValueError:无法将类型为int的对象用于空间查找参数。您能在问题中添加完整的错误回溯吗?谢谢您的回答。但是,当我尝试迁移它时,仍然会引发ValueError('无法将类型为%s的对象用于空间查找参数。'%type(obj)。\u_name\u__; ValueError:无法将类型为int的对象用于空间查找参数。您能否在问题中添加完整的错误回溯,这将非常有用
    from django.contrib.gis.geos import Point
    location = gis_models.PointField(default=Point(0, 0), blank=True)